*** empty log message ***

This commit is contained in:
glenux 2004-02-24 11:15:06 +00:00 committed by Glenn Y. Rolland
parent a501a39ba6
commit 1e8ef06820
3 changed files with 16 additions and 16 deletions

View file

@ -22,7 +22,6 @@ void * msgAllocate(msgSpace *space,
float semPoolCoef[space->poolNb]; float semPoolCoef[space->poolNb];
int idxPoolOptimum; int idxPoolOptimum;
bool gotRessourceSem; bool gotRessourceSem;
sem_t * poolDataTabSemFd;
msgPoolDataTabSemId ressourceSemId; msgPoolDataTabSemId ressourceSemId;
sem_t * ressourceSemFd; sem_t * ressourceSemFd;
int ressourceSemVal; int ressourceSemVal;
@ -163,25 +162,19 @@ void * msgAllocate(msgSpace *space,
printf("Passed %s\n",ressourceSemId); printf("Passed %s\n",ressourceSemId);
} }
/* on a acqui un semaphore pour la ressouce */ /* on a acqui un semaphore pour la ressouce */
/* on acquiert le droit de modifier les infos sur la ressource */ /* on acquiert le droit de modifier les infos sur la ressource */
/* on protege le tableau des associations */ /* on protege le tableau des associations */
poolDataTabSemFd=sem_open(space->poolDataTabSemId, msgPoolDataTabLock(space);
O_CREAT,SEM_DEFAULT_MODE,1);
if (poolDataTabSemFd == SEM_FAILED){
NZG_ERROR("sem_open : ouverture de la ressource",
space->poolDataTabSemId);
return NULL;
}
sem_wait(poolDataTabSemFd);
/* on modifie maintenant les données */ /* on modifie maintenant les données */
/* - on récupere l'index du premier buffer libre */ /* - on récupere l'index du premier buffer libre */
bufferFreeIndex = msgBufferGetFreeIndex(mSPoolDataTabAddr,selectedPoolIndex); bufferFreeIndex = msgBufferGetFreeIndex(mSPoolDataTabAddr,selectedPoolIndex);
if (bufferFreeIndex < 0){ if (bufferFreeIndex < 0){
sem_close(poolDataTabSemFd);
// aucun buffer libre ? // aucun buffer libre ?
return NULL; NZG_ERROR("msgBufferGetFreeIndex","");
goto ERROR;
} }
printf("Buffer selected : %d,%d\n",selectedPoolIndex,bufferFreeIndex); printf("Buffer selected : %d,%d\n",selectedPoolIndex,bufferFreeIndex);
/* mapper le buffer libre dans l'esp addr du proc */ /* mapper le buffer libre dans l'esp addr du proc */
@ -220,8 +213,7 @@ void * msgAllocate(msgSpace *space,
resultAddr); resultAddr);
close(mSPoolFd); close(mSPoolFd);
sem_post(poolDataTabSemFd); msgPoolDataTabUnlock(space);
sem_close(poolDataTabSemFd);
/* unmapper le msgPoolDataTab */ /* unmapper le msgPoolDataTab */
munmap(mSPoolDataTabAddr,(space->poolNb) * sizeof( msgPoolData )); munmap(mSPoolDataTabAddr,(space->poolNb) * sizeof( msgPoolData ));
@ -229,8 +221,7 @@ void * msgAllocate(msgSpace *space,
return resultAddr; return resultAddr;
ERROR: ERROR:
NZG_ERROR("msgAllocate","error processing"); NZG_ERROR("msgAllocate","error processing");
sem_post(poolDataTabSemFd); msgPoolDataTabUnlock(space);
sem_close(poolDataTabSemFd);
munmap(mSPoolDataTabAddr,(space->poolNb) * sizeof( msgPoolData )); munmap(mSPoolDataTabAddr,(space->poolNb) * sizeof( msgPoolData ));
return NULL; return NULL;
} }

View file

@ -32,7 +32,16 @@ void * msgGet(msgSpace * space,int queueIndex,int option){
oldElem = msgQueueElemOpen(oldElemId); oldElem = msgQueueElemOpen(oldElemId);
/* on récupere la taille des buffer dans la pool du buffer */
int bufferSize;
msgPoolData * poolDataTab;
poolDataTab=msgPoolDataTabOpen(space);
bufferSize=poolDataTab[oldElem->poolIndex].bufferSize;
msgPoolDataTabClose(space,poolDataTab);
// mapper le buffer dans l'espace mémoire du processus // mapper le buffer dans l'espace mémoire du processus
// attacher au buffer... // attacher au buffer...
// fermer la file // fermer la file

View file

@ -40,7 +40,7 @@ int msgPut(msgSpace * space,int queueIndex, void * addr){
msgQueueElemClose(queueElem); msgQueueElemClose(queueElem);
//ajouter le message a la bonne file... //ajouter le message a la bonne file...
msgQueueElemAdd(queue,newElemId); msgQueueAdd(queue,newElemId);
// fermer la file // fermer la file
msgQueueClose(queue); msgQueueClose(queue);