* ajouté un semaphore de protection du DataTab (et des infos qui en découlent)
* verrouillé le semaphore dans create
This commit is contained in:
parent
f20db37147
commit
ac8072290f
3 changed files with 17 additions and 4 deletions
|
@ -162,7 +162,7 @@ void * msgAllocate(msgSpace *space,
|
||||||
/* on acquiert le droit de modifier les infos sur la ressource */
|
/* on acquiert le droit de modifier les infos sur la ressource */
|
||||||
|
|
||||||
poolDataTabSemFd=sem_open(space->poolDataTabSemId,O_CREAT,SEM_DEFAULT_MODE,1);
|
poolDataTabSemFd=sem_open(space->poolDataTabSemId,O_CREAT,SEM_DEFAULT_MODE,1);
|
||||||
|
printf("VOILAAA : %s\n",space->poolDataTabSemId);
|
||||||
//sem_wait(poolDataTabSemFd);
|
//sem_wait(poolDataTabSemFd);
|
||||||
|
|
||||||
/* on modifie maintenant les données */
|
/* on modifie maintenant les données */
|
||||||
|
@ -173,7 +173,7 @@ void * msgAllocate(msgSpace *space,
|
||||||
// aucun buffer libre ?
|
// aucun buffer libre ?
|
||||||
return NULL;
|
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: mapper le buffer libre dans l'esp addr du proc */
|
||||||
//TODO:
|
//TODO:
|
||||||
/* - on s'enregistre aupres de ce buffer */
|
/* - on s'enregistre aupres de ce buffer */
|
||||||
|
|
|
@ -16,7 +16,20 @@ int msgSpaceIdIntern(msgSpaceId dest,const msgSpaceId src ){
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
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(
|
int msgPoolSemIdIntern(
|
||||||
msgPoolSemId destSemId,
|
msgPoolSemId destSemId,
|
||||||
const msgSpaceId srcPoolId,
|
const msgSpaceId srcPoolId,
|
||||||
|
|
|
@ -38,7 +38,7 @@ int msgPoolCreate(
|
||||||
}
|
}
|
||||||
|
|
||||||
// on met un semaphore sur le pool
|
// 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){
|
if (ressourceSemFd == SEM_FAILED){
|
||||||
NZG_ERROR("sem_open : creation de la ressource",poolRessourceSemId);
|
NZG_ERROR("sem_open : creation de la ressource",poolRessourceSemId);
|
||||||
return -1;
|
return -1;
|
||||||
|
|
Loading…
Reference in a new issue