From da416ca283fae31f70dee2a3d513a2067f4cc8c8 Mon Sep 17 00:00:00 2001 From: zenon Date: Thu, 7 Jun 2018 18:24:12 +0200 Subject: [PATCH] Do unlinking of SEM_WRITE_END in supervisor --- generator.c | 4 +--- supervisor.c | 5 +++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/generator.c b/generator.c index 74980a2..28fae05 100644 --- a/generator.c +++ b/generator.c @@ -202,8 +202,6 @@ void cleanup() sem_close(sUsedSpace); sem_close(sFreeSpace); sem_close(sWriteEnd); - - sem_unlink(SEM_WRITE_END); } @@ -329,7 +327,7 @@ int main(int argc, char *argv[]) sFreeSpace = sem_open(SEM_FREE_SPACE, 0); sUsedSpace = sem_open(SEM_USED_SPACE, 0); - sWriteEnd = sem_open(SEM_WRITE_END, O_CREAT, PERMISSION, 1); + sWriteEnd = sem_open(SEM_WRITE_END, 0); if (sFreeSpace == SEM_FAILED || sUsedSpace == SEM_FAILED || sWriteEnd == SEM_FAILED) { diff --git a/supervisor.c b/supervisor.c index ff1ef1a..fd9d1cb 100644 --- a/supervisor.c +++ b/supervisor.c @@ -17,6 +17,8 @@ static sem_t *sUsedSpace; static sem_t *sFreeSpace; +static sem_t *sWriteEnd; + struct sigaction sa; static int bestSolution[MAX_ITEMS]; @@ -50,9 +52,11 @@ void cleanup() } sem_close(sUsedSpace); sem_close(sFreeSpace); + sem_close(sWriteEnd); sem_unlink(SEM_USED_SPACE); sem_unlink(SEM_FREE_SPACE); + sem_unlink(SEM_WRITE_END); } void initCircBuf() @@ -172,6 +176,7 @@ int main(int argc, char *argv[]) sFreeSpace = sem_open(SEM_FREE_SPACE, O_CREAT | O_EXCL, PERMISSION, MAX_ITEMS); sUsedSpace = sem_open(SEM_USED_SPACE, O_CREAT | O_EXCL, PERMISSION, 0); + sWriteEnd = sem_open(SEM_WRITE_END, O_CREAT | O_EXCL, PERMISSION, 1); initCircBuf();