68 lines
1.4 KiB
C
68 lines
1.4 KiB
C
#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);
|
|
goto ERROR;
|
|
}
|
|
|
|
/*Pose d'un semaphore et le verrouille*/
|
|
if(sem_wait(spacesListSemFd)==-1){
|
|
NZG_ERROR("sem_wait",spacesListSemId);
|
|
goto ERROR;
|
|
}
|
|
|
|
/* Ferme le semaphore*/
|
|
/* if(sem_close(spacesListSemFd)==-1){
|
|
NZG_ERROR("sem_close",spacesListSemId);
|
|
return -1;
|
|
}*/
|
|
sem_close(spacesListSemFd);
|
|
|
|
return 0;
|
|
ERROR:
|
|
return -1;
|
|
}
|
|
|
|
|
|
// 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);
|
|
goto ERROR;
|
|
}
|
|
|
|
|
|
/*Relachement du semaphore*/
|
|
if(sem_post(spacesListSemFd)==-1){
|
|
NZG_ERROR("sem_relache",spacesListSemId);
|
|
goto ERROR;
|
|
}
|
|
|
|
|
|
/* Ferme le semaphore
|
|
if(sem_close(spacesListSemFd)==-1){
|
|
NZG_ERROR("sem_close",spacesListSemId);
|
|
return -1;
|
|
}*/
|
|
|
|
return 0;
|
|
ERROR:
|
|
return -1;
|
|
};
|
|
|