From 1ef280444c6f5adb22ed46a3747889384146d66d Mon Sep 17 00:00:00 2001 From: stormrider1982 Date: Wed, 25 Feb 2004 08:48:23 +0000 Subject: [PATCH] un get qui marche? --- src/get.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/get.c b/src/get.c index b5c8e9d..4881aec 100644 --- a/src/get.c +++ b/src/get.c @@ -7,7 +7,9 @@ void * msgGet(msgSpace * space,int queueIndex,int option){ msgQueueId queueId; msgQueue * queue; msgQueueElemId oldElemId; - msgQueueElem * oldElem; + msgQueueElem * oldElem; + int poolIndex; + // on teste la possibilité de lecture sur la liste... if (option == NONBLOCK){ if (msgQueueReadTryLock(space->externId,queueIndex) <0){ @@ -30,8 +32,9 @@ void * msgGet(msgSpace * space,int queueIndex,int option){ // recupérer l'id de l'ancien element... msgQueueRem(queue, oldElemId); - oldElem = msgQueueElemOpen(oldElemId); - + oldElem = msgQueueElemOpen(oldElemId); + poolIndex=oldElem->poolIndex; + /* on récupere la taille des buffer dans la pool du buffer */ int bufferSize; msgPoolData * poolDataTab; @@ -47,9 +50,19 @@ void * msgGet(msgSpace * space,int queueIndex,int option){ bufferNb=mSPoolDataTabAddr[selectedPoolIndex].bufferNb; */ /* TODO: ecrire msgBufferMap(space,poolIndex,bufferIndex) */ + + resultAddr = msgBufferMap(poolDataTab, poolIndex, 0); + if(resultAddr == NULL) { + NZG_ERROR("BufferMap", poolDataTab->poolId); + goto ERROR; + } - + // attacher au buffer... + msgBufferAttachProc(poolDataTab, + poolIndex, + 0, // c le buff en tete de file.... + resultAddr); // fermer la file msgQueueClose(queue);