*** empty log message ***
This commit is contained in:
parent
e67dcf6970
commit
385c2dbcc7
3 changed files with 45 additions and 35 deletions
|
@ -8,6 +8,7 @@ typedef enum { true=1, false=0} bool;
|
|||
typedef char msgSpaceId[MSGSPACE_ID_LEN];
|
||||
|
||||
typedef char msgSpaceListId[4*MSGSPACE_ID_LEN];
|
||||
typedef char msgSpaceListSemId[4*MSGSPACE_ID_LEN];
|
||||
typedef char msgSpaceListElemId[4*MSGSPACE_ID_LEN];
|
||||
|
||||
typedef char msgPoolDataTabId[4*MSGSPACE_ID_LEN];
|
||||
|
|
|
@ -7,27 +7,29 @@
|
|||
//
|
||||
// crée également un sémaphore de gestion de liste
|
||||
// a verouiller avant toute modification
|
||||
int msgSpaceListInit();
|
||||
|
||||
int msgSpaceListInit(){
|
||||
int descMemory;
|
||||
msgSpaceListElemId idList;
|
||||
/*Fait un segment de memoir partager sur espace de listelement*/
|
||||
if( (descMemory=shm_open(idList,O_RDWR|O_CREAT|O_EXCL|O_TRUNC,0600))==-1){
|
||||
printf("Erreur de shmopen");
|
||||
sem_t * spacesListSemFd;
|
||||
msgSpaceListSemId spacesListSemId;
|
||||
msgSpaceListElemId spacesListId;
|
||||
/*Fait un segment de memoir partager sur espace de listelement*/
|
||||
descMemory=shm_open(spacesListId,O_RDWR|O_CREAT|O_EXCL|O_TRUNC,0600);
|
||||
if (descMemory == -1){
|
||||
NZG_ERROR("shm_open",spacesListId);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*Creation de semaphore*/
|
||||
sem=sem_open(spaceList,O_CREAT|O_EXCL,0666,1024);
|
||||
if(sem==SEM_FAILED){
|
||||
printf("erreur de semaphore");
|
||||
return -1;
|
||||
spacesListSemFd=sem_open(spacesListSemId,O_CREAT|O_EXCL,0666,1024);
|
||||
if(spacesListSemFd==SEM_FAILED){
|
||||
NZG_ERROR("sem_open",spacesListSemId);
|
||||
return -1;
|
||||
}
|
||||
/*Verouille le semaphore*/
|
||||
if(sem_wait(sem)==-1){
|
||||
printf("erreur pour l'ajout d'un semaphore");
|
||||
if(sem_wait(spacesListSemFd)==-1){
|
||||
NZG_ERROR("sem_wait",spacesListSemId);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,36 +4,43 @@
|
|||
// verouille le semaphore de la liste
|
||||
|
||||
int msgSpaceListLock(){
|
||||
sem_t * spacesListSemFd;
|
||||
msgSpaceListSemId spacesListSemId;
|
||||
|
||||
/*Ouverture d'un verrou d'un semafore*/
|
||||
sem=sem_open(spaceList,O_CREAT|O_EXCL,0666,1024);
|
||||
if(sem==SEM_FAILED){
|
||||
printf("erreur de semaphore");
|
||||
return -1;
|
||||
}
|
||||
/*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 semafore et bloque*/
|
||||
if(sem_wait(sem)==-1){
|
||||
printf("erreur pour l'ajout d'un semaphore");
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
/*Pose d'un semafore et bloque*/
|
||||
if(sem_wait(spacesListSemFd)==-1){
|
||||
NZG_ERROR("sem_wait",spacesListSemId);
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// deverouille le semaphore de la liste
|
||||
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;
|
||||
sem_t * spacesListSemFd;
|
||||
msgSpaceListSemId spacesListSemId;
|
||||
|
||||
/* Ferme le semaphore*/
|
||||
if(sem_close(spacesListSemFd)==-1){
|
||||
NZG_ERROR("sem_close",spacesListSemId);
|
||||
return -1;
|
||||
}
|
||||
/*semaphore non bloquant*/
|
||||
if (sem_trywait(spacesListSemFd)==-1){
|
||||
NZG_ERROR("sem_trywait",spacesListSemId);
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue