#include "libnazgul.h" // verouille le semaphore de la liste int msgSpaceListLock(){ sem_t * spacesListSemFd; msgSpaceListSemId spacesListSemId; /*Ouverture d'un verrou d'un semafore*/ //TODO: remplacer par la bonne valeur d'initialisation du //semaphore spacesListSemFd=sem_open(spacesListSemId,O_CREAT|O_EXCL,0666,1024); if(spacesListSemFd==SEM_FAILED){ NZG_ERROR("sem_open",spacesListSemId); return -1; } /*Pose d'un semaphore et le verrouille*/ if(sem_wait(spacesListSemFd)==-1){ NZG_ERROR("sem_wait",spacesListSemId); return -1; } /* Ferme le semaphore*/ if(sem_close(spacesListSemFd)==-1){ NZG_ERROR("sem_close",spacesListSemId); return -1; } return 0; } // deverouille le semaphore de la liste int msgSpaceListUnlock(){ sem_t * spacesListSemFd; msgSpaceListSemId spacesListSemId; /*Ouverture dun semaphore*/ spacesListSemFd=sem_open(spacesListSemId,O_CREAT|O_EXCL,0666,1024); if(spacesListSemFd==SEM_FAILED){ NZG_ERROR("sem_open",spacesListSemId); return -1; } /*Relachement du semaphore*/ if(sem_post(spacesListSemFd)==-1){ NZG_ERROR("sem_relache",spacesListSemId); return -1; } /* Ferme le semaphore*/ if(sem_close(spacesListSemFd)==-1){ NZG_ERROR("sem_close",spacesListSemId); return -1; } return 0; };