*** empty log message ***
This commit is contained in:
parent
dc2be73063
commit
e67dcf6970
3 changed files with 75 additions and 78 deletions
|
@ -1,21 +1,5 @@
|
||||||
#include "libnazgul.h"
|
#include "libnazgul.h"
|
||||||
|
|
||||||
// fonction pour la creation d'une liste de msgSpace
|
|
||||||
// cree un shm qui connait l'element de debut de liste
|
|
||||||
// et l'element de fin de liste.
|
|
||||||
// il ne se crée que s'il n'en existe pas deja un.
|
|
||||||
//
|
|
||||||
// crée également un sémaphore de gestion de liste
|
|
||||||
// a verouiller avant toute modification
|
|
||||||
int msgSpaceListInit();
|
|
||||||
|
|
||||||
// verouille le semaphore de la liste
|
|
||||||
int msgSpaceListLock();
|
|
||||||
|
|
||||||
|
|
||||||
// deverouille le semaphore de la liste
|
|
||||||
int msgSpaceListUnlock();
|
|
||||||
|
|
||||||
// cree un nouvel elemen
|
// cree un nouvel elemen
|
||||||
int msgSpaceListElemCreate(msgSpaceListElemId resultName,msgSpaceId spaceId);
|
int msgSpaceListElemCreate(msgSpaceListElemId resultName,msgSpaceId spaceId);
|
||||||
|
|
||||||
|
@ -32,72 +16,10 @@ int msgSpaceListRem(msgSpaceListElemId spaceId);
|
||||||
char *spaceList;
|
char *spaceList;
|
||||||
sem_t * sem;
|
sem_t * sem;
|
||||||
|
|
||||||
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");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*Creation de semaphore*/
|
|
||||||
sem=sem_open(spaceList,O_CREAT|O_EXCL,0666,1024);
|
|
||||||
if(sem==SEM_FAILED){
|
|
||||||
printf("erreur de semaphore");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
/*Verouille le semaphore*/
|
|
||||||
if(sem_wait(sem)==-1){
|
|
||||||
printf("erreur pour l'ajout d'un semaphore");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int msgSpaceListLock(){
|
|
||||||
|
|
||||||
/*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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Pose d'un semafore et bloque*/
|
|
||||||
if(sem_wait(sem)==-1){
|
|
||||||
printf("erreur pour l'ajout d'un semaphore");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// cree un nouvel elemen
|
// cree un nouvel elemen
|
||||||
int msgSpaceListElemCreate(msgSpaceListElemId resultName,msgSpaceId spaceId){
|
int msgSpaceListElemCreate(msgSpaceListElemId resultName,msgSpaceId spaceId){
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
36
src/nzg_spaceListInit.c
Normal file
36
src/nzg_spaceListInit.c
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#include "libnazgul.h"
|
||||||
|
|
||||||
|
// fonction pour la creation d'une liste de msgSpace
|
||||||
|
// cree un shm qui connait l'element de debut de liste
|
||||||
|
// et l'element de fin de liste.
|
||||||
|
// il ne se crée que s'il n'en existe pas deja un.
|
||||||
|
//
|
||||||
|
// 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");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*Creation de semaphore*/
|
||||||
|
sem=sem_open(spaceList,O_CREAT|O_EXCL,0666,1024);
|
||||||
|
if(sem==SEM_FAILED){
|
||||||
|
printf("erreur de semaphore");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
/*Verouille le semaphore*/
|
||||||
|
if(sem_wait(sem)==-1){
|
||||||
|
printf("erreur pour l'ajout d'un semaphore");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
|
39
src/nzg_spaceListLocking.c
Normal file
39
src/nzg_spaceListLocking.c
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#include "libnazgul.h"
|
||||||
|
|
||||||
|
|
||||||
|
// verouille le semaphore de la liste
|
||||||
|
|
||||||
|
int msgSpaceListLock(){
|
||||||
|
|
||||||
|
/*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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*Pose d'un semafore et bloque*/
|
||||||
|
if(sem_wait(sem)==-1){
|
||||||
|
printf("erreur pour l'ajout d'un semaphore");
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in a new issue