*** empty log message ***
This commit is contained in:
parent
a1367fd5ee
commit
a501a39ba6
2 changed files with 33 additions and 4 deletions
11
src/get.c
11
src/get.c
|
@ -4,6 +4,10 @@
|
|||
|
||||
void * msgGet(msgSpace * space,int queueIndex,int option){
|
||||
void * resultAddr;
|
||||
msgQueueId queueId;
|
||||
msgQueue * queue;
|
||||
msgQueueElemId oldElemId;
|
||||
msgQueueElem * oldElem;
|
||||
// on teste la possibilité de lecture sur la liste...
|
||||
if (option == NONBLOCK){
|
||||
if (msgQueueReadTryLock(space->externId,queueIndex) <0){
|
||||
|
@ -19,18 +23,17 @@ void * msgGet(msgSpace * space,int queueIndex,int option){
|
|||
// la lecture est possible
|
||||
// on essaye donc de modifier la liste
|
||||
msgQueueProtLock(space->externId,queueIndex);
|
||||
msgQueueId queueId;
|
||||
msgQueue * queue;
|
||||
msgQueueIdIntern(queueId,space->externId,queueIndex);
|
||||
// ouvrir la file
|
||||
queue = msgQueueOpen(queueId);
|
||||
|
||||
msgQueueElemId oldElemId;
|
||||
// recupérer l'id de l'ancien element...
|
||||
msgQueueRem(queue, oldElemId);
|
||||
|
||||
msgQueueElem * oldElem;
|
||||
oldElem = msgQueueElemOpen(oldElemId);
|
||||
|
||||
// mapper le buffer dans l'espace mémoire du processus
|
||||
// attacher au buffer...
|
||||
|
||||
// fermer la file
|
||||
msgQueueClose(queue);
|
||||
|
|
26
src/queueReadTryLock.c
Normal file
26
src/queueReadTryLock.c
Normal file
|
@ -0,0 +1,26 @@
|
|||
#include "libnazgul.h"
|
||||
#include "ids.h"
|
||||
|
||||
int msgQueueReadTryLock(msgSpaceId externId,int queueIdx){
|
||||
sem_t * queueSemFd;
|
||||
msgQueueSemId queueSemId;
|
||||
|
||||
msgQueueReadSemIdIntern(queueSemId,externId,queueIdx);
|
||||
queueSemFd=sem_open(queueSemId,O_CREAT|O_EXCL,SEM_DEFAULT_MODE,1);
|
||||
if(queueSemFd==SEM_FAILED){
|
||||
NZG_ERROR("sem_open",queueSemId);
|
||||
goto ERROR;
|
||||
}
|
||||
|
||||
if(sem_trywait(queueSemFd)==-1){
|
||||
NZG_ERROR("sem_wait",queueSemId);
|
||||
goto ERROR;
|
||||
}
|
||||
|
||||
sem_close(queueSemFd);
|
||||
|
||||
return 0;
|
||||
ERROR:
|
||||
return -1;
|
||||
}
|
||||
|
Loading…
Reference in a new issue