* ajouté un semaphore de protection du DataTab (et des infos qui en découlent)

* verrouillé le semaphore dans create
This commit is contained in:
glenux 2004-02-23 10:30:02 +00:00
parent c8091765fc
commit 0857256f59
3 changed files with 17 additions and 4 deletions

View file

@ -162,7 +162,7 @@ void * msgAllocate(msgSpace *space,
/* on acquiert le droit de modifier les infos sur la ressource */
poolDataTabSemFd=sem_open(space->poolDataTabSemId,O_CREAT,SEM_DEFAULT_MODE,1);
printf("VOILAAA : %s\n",space->poolDataTabSemId);
//sem_wait(poolDataTabSemFd);
/* on modifie maintenant les données */
@ -173,7 +173,7 @@ void * msgAllocate(msgSpace *space,
// aucun buffer libre ?
return NULL;
}
printf("Buffer %d libre a attacher !\n",bufferFreeIndex);
printf("Buffer selected : %d,%d\n",selectedPoolIndex,bufferFreeIndex);
/*TODO: mapper le buffer libre dans l'esp addr du proc */
//TODO:
/* - on s'enregistre aupres de ce buffer */

View file

@ -16,7 +16,20 @@ int msgSpaceIdIntern(msgSpaceId dest,const msgSpaceId src ){
#endif
return 0;
}
int msgPoolDataTabSemIdIntern(
msgPoolSemId destSemId,
const msgSpaceId externId){
if (strlen(externId)>MSGSPACE_ID_LEN*4){
return -1;
}
/* sprintf(resNzgId,"/tmp/.nzg-%s",(char *)spaceId); */
#ifdef _NZG_REALFILEID
sprintf(destSemId,"/tmp/nzgPoolDTSem-%s",(char *)externId);
#else
sprintf(destSemId,"/nzgPoolDTSem-%s",(char *)externId);
#endif
return 0;
}
int msgPoolSemIdIntern(
msgPoolSemId destSemId,
const msgSpaceId srcPoolId,

View file

@ -38,7 +38,7 @@ int msgPoolCreate(
}
// on met un semaphore sur le pool
ressourceSemFd = sem_open(poolRessourceSemId, O_CREAT|O_EXCL, 0666, buffNb);
ressourceSemFd = sem_open(poolRessourceSemId, O_CREAT|O_EXCL,SEM_DEFAULT_MODE, buffNb);
if (ressourceSemFd == SEM_FAILED){
NZG_ERROR("sem_open : creation de la ressource",poolRessourceSemId);
return -1;