2004-02-22 22:32:15 +00:00
|
|
|
#include "libnazgul.h"
|
|
|
|
|
|
|
|
|
|
|
|
// verouille le semaphore de la liste
|
|
|
|
|
|
|
|
int msgSpaceListLock(){
|
2004-02-25 21:28:11 +00:00
|
|
|
sem_t * msgSpaceListSemFd;
|
|
|
|
msgSpaceListSemId spaceListSemId;
|
|
|
|
strcpy(spaceListSemId,DEFAULT_MSGSPACELISTSEMID);
|
|
|
|
|
|
|
|
/* Ouverture d'un semafore */
|
|
|
|
msgSpaceListSemFd=sem_open(spaceListSemId,O_CREAT,0666,1);
|
|
|
|
if(msgSpaceListSemFd==SEM_FAILED){
|
|
|
|
NZG_ERROR("sem_open",spaceListSemId);
|
|
|
|
goto ERROR;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Pose d'un semaphore et le verrouille */
|
|
|
|
if(sem_wait(msgSpaceListSemFd)==-1){
|
|
|
|
NZG_ERROR("sem_wait",spaceListSemId);
|
|
|
|
goto ERROR;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Ferme le semaphore*/
|
|
|
|
/* if(sem_close(msgSpaceListSemFd)==-1){
|
|
|
|
NZG_ERROR("sem_close",spaceListSemId);
|
|
|
|
return -1;
|
|
|
|
}*/
|
|
|
|
sem_close(msgSpaceListSemFd);
|
|
|
|
|
|
|
|
return 0;
|
2004-02-23 20:23:23 +00:00
|
|
|
ERROR:
|
2004-02-25 21:28:11 +00:00
|
|
|
return -1;
|
2004-02-22 22:32:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// deverouille le semaphore de la liste
|
|
|
|
int msgSpaceListUnlock(){
|
2004-02-25 21:28:11 +00:00
|
|
|
sem_t * msgSpaceListSemFd;
|
|
|
|
msgSpaceListSemId spaceListSemId;
|
|
|
|
strcpy(spaceListSemId,DEFAULT_MSGSPACELISTSEMID);
|
2004-02-23 20:23:23 +00:00
|
|
|
|
2004-02-23 16:02:25 +00:00
|
|
|
|
2004-02-25 21:28:11 +00:00
|
|
|
/*Ouverture dun semaphore*/
|
|
|
|
msgSpaceListSemFd=sem_open(spaceListSemId,O_CREAT,0666,0);
|
|
|
|
if(msgSpaceListSemFd==SEM_FAILED){
|
|
|
|
NZG_ERROR("sem_open",spaceListSemId);
|
|
|
|
goto ERROR;
|
|
|
|
}
|
2004-02-23 16:02:25 +00:00
|
|
|
|
|
|
|
|
2004-02-25 21:28:11 +00:00
|
|
|
/*Relachement du semaphore*/
|
|
|
|
if(sem_post(msgSpaceListSemFd)==-1){
|
|
|
|
NZG_ERROR("sem_relache",spaceListSemId);
|
|
|
|
goto ERROR;
|
|
|
|
}
|
2004-02-23 16:02:25 +00:00
|
|
|
|
|
|
|
|
2004-02-25 21:28:11 +00:00
|
|
|
/* Ferme le semaphore */
|
|
|
|
if(sem_close(msgSpaceListSemFd)==-1){
|
|
|
|
NZG_ERROR("sem_close",spaceListSemId);
|
|
|
|
goto ERROR;
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
2004-02-23 20:23:23 +00:00
|
|
|
ERROR:
|
2004-02-25 21:28:11 +00:00
|
|
|
return -1;
|
2004-02-22 22:32:15 +00:00
|
|
|
};
|
|
|
|
|