*** empty log message ***

This commit is contained in:
glenux 2004-02-24 09:54:05 +00:00 committed by Glenn Y. Rolland
parent 55bdcbca9d
commit e86a28a0c3
5 changed files with 69 additions and 36 deletions

View file

@ -50,8 +50,9 @@ sem_t * poolDataTabSemFd;
msgPoolDataTabClose(space,poolDataTabAddr);
// deverouiller semaphore DataInfo
sem_post(poolDataTabSemFd);
sem_close(poolDataTabSemFd);
msgPoolDataTabUnlock(space);
// sem_post(poolDataTabSemFd);
// sem_close(poolDataTabSemFd);
// deverouiller semaphore ressource.
msgPoolSemIdIntern(ressourceSemId,space->id,poolIndex);

0
src/get.c Normal file
View file

View file

@ -0,0 +1,29 @@
#include "libnazgul.h"
#include "ids.h"
int msgPoolDataTabUnlock(msgSpace * space){
sem_t * poolDataTabSemFd;
poolDataTabSemFd=sem_open(
space->poolDataTabSemId
,O_CREAT,
SEM_DEFAULT_MODE,
1);
if(poolDataTabSemFd==SEM_FAILED){
NZG_ERROR("sem_open",space->poolDataTabSemId);
goto ERROR;
}
if(sem_post(poolDataTabSemFd)==-1){
NZG_ERROR("sem_post",space->poolDataTabSemId);
goto ERROR;
}
sem_close(poolDataTabSemFd);
return 0;
ERROR:
return -1;
}

View file

@ -41,6 +41,7 @@ int msgPoolDataTabLock(msgSpace *space);
/* poolDataTabOpen.c */
void *msgPoolDataTabOpen(msgSpace *space);
/* poolDataTabUnlock.c */
int msgPoolDataTabUnlock(msgSpace *space);
/* poolDelete.c */
int msgPoolDelete(msgSpaceId spaceId, int poolIdx);
/* put.c */

View file

@ -1,15 +1,15 @@
#include "libnazgul.h"
int msgPut(msgSpace * space,int queueIndex, void * addr){
// retrouver le pool, buffer qui correspondent à l'addresse...
// retrouver le pool, buffer qui correspondent à l'addresse...
msgPoolData * poolDataTabAddr;
int poolIndex;
int bufferIndex;
int err;
int poolIndex;
int bufferIndex;
int err;
msgPoolDataTabLock(space);
poolDataTabAddr=msgPoolDataTabOpen(space);
err=msgBufferGetProcAttach(
err=msgBufferGetProcAttach(
poolDataTabAddr,
space->poolNb,
&poolIndex,
@ -17,41 +17,43 @@ int err;
addr
);
// ouvrir la queue avec le bon index
msgQueueId queueId;
msgQueue * queue;
msgQueueIdIntern(queueId,space->externId,queueIndex);
msgQueueProtLock(space->externId,queueIndex);
queue = msgQueueOpen(queueId);
// ouvrir la queue avec le bon index
msgQueueId queueId;
msgQueue * queue;
msgQueueIdIntern(queueId,space->externId,queueIndex);
msgQueueProtLock(space->externId,queueIndex);
queue = msgQueueOpen(queueId);
// TODO:creer un element vide
msgQueueElemId newElemId;
msgQueueElem * queueElem;
// TODO:creer un element vide
msgQueueElemId newElemId;
msgQueueElem * queueElem;
msgQueueElemCreate(newElemId,queueId,queue->elemCounter);
// ouvrir l'element
queueElem=msgQueueElemOpen(newElemId);
// modifier les index pour retrouver le buffer
queueElem->poolIndex=poolIndex;
queueElem->bufferIndex=bufferIndex;
// fermer l'element
msgQueueElemClose(queueElem);
msgQueueElemCreate(newElemId,queueId,queue->elemCounter);
// ouvrir l'element
queueElem=msgQueueElemOpen(newElemId);
//ajouter le message a la bonne file...
msgQueueElemAdd(queue,newElemId);
// modifier les index pour retrouver le buffer
queueElem->poolIndex=poolIndex;
queueElem->bufferIndex=bufferIndex;
// fermer l'element
msgQueueElemClose(queueElem);
// fermer la file
msgQueueClose(queue);
msgQueueProtUnlock(space->externId,queueIndex);
//ajouter le message a la bonne file...
msgQueueElemAdd(queue,newElemId);
msgPoolDataTabClose(space,poolDataTabAddr);
/* msgPoolDataTabUnlock(space->id);
*/
msgQueueReadUnlock(space->externId,queueIndex);
return 0;
// fermer la file
msgQueueClose(queue);
msgQueueProtUnlock(space->externId,queueIndex);
msgPoolDataTabClose(space,poolDataTabAddr);
msgPoolDataTabUnlock(space);
// on laisse une nouvelle ressource de la liste au get
msgQueueReadUnlock(space->externId,queueIndex);
return 0;
ERROR:
return -1;
return -1;
}