From 3e2c5ee2c748c44e7cf95e72c93bf0a86ddc633c Mon Sep 17 00:00:00 2001 From: rivka_zan Date: Sun, 22 Feb 2004 19:02:34 +0000 Subject: [PATCH] * fonction pour debloquer le semaphore --- src/nzg_msgList.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/nzg_msgList.c b/src/nzg_msgList.c index 1946612..44a5cd2 100644 --- a/src/nzg_msgList.c +++ b/src/nzg_msgList.c @@ -30,18 +30,18 @@ int msgSpaceListAdd(msgSpaceListElemId ); int msgSpaceListRem(msgSpaceListElemId spaceId); char *spaceList; +sem_t * sem; + int msgSpaceListLock(){ - char *spaceList; - /*Pose d'un semafore*/ - sem_t * sem; - if((int)sem=sem_open(spaceList,O_CREAT|O_EXCL, 0666,10) ==-1){ + /*Ouverture d'un verrou d'un semafore*/ + if((int)sem=sem_open(spaceList,O_CREAT|O_EXCL, 0666,1024) ==-1){ printf("erreur de semaphore"); return -1; } - + /*Pose d'un semafore et bloque*/ if(sem_wait(sem)==-1){ printf("erreur pour l'ajout d'un semaphore"); return -1; @@ -50,18 +50,20 @@ int msgSpaceListLock(){ } -/*int msgSpaceListUnlock(){ - Ferme le semaphore - int semClose; - if(semClose=sem_close(spaceList) )==-1{ - printf("erreur"); +int msgSpaceListUnlock(){ + /* Ferme le semaphore*/ + if(sem_close(sem)==-1){ + printf("erreur sem_close"); + return -1; + } + /*semaphore non bloquant*/ + if (sem_trywait(sem)==-1){ + printf("erreur sem_trywait"); return -1; } - - return 0; }; -*/ +