From a87aa43265658fa9da2c100b2f2ba4a31247cc1f Mon Sep 17 00:00:00 2001 From: glenux Date: Mon, 23 Feb 2004 22:16:44 +0000 Subject: [PATCH] =?UTF-8?q?*=20munmap=20de=20l'addresse=20pass=C3=A9e=20en?= =?UTF-8?q?=20parametre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/free.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/free.c b/src/free.c index ae51825..84036e9 100644 --- a/src/free.c +++ b/src/free.c @@ -61,6 +61,13 @@ sem_t * poolDataTabSemFd; printf("Freing pool: %d, buffer: %d\n",poolIndex,bufferIndex); msgBufferDetachProc(poolDataTabAddr,poolIndex,bufferIndex,addr); + /* unmapper le buffer */ + void * realAddr=addr; + int bufferSize=poolDataTabAddr[poolIndex].bufferSize; + int bufferNb=poolDataTabAddr[poolIndex].bufferNb; + realAddr=realAddr-poolIndex*bufferSize; + munmap(realAddr,bufferSize*bufferNb); + /* unmapper le msgPoolDataTab */ munmap(poolDataTabAddr,(space->poolNb) * sizeof( msgPoolData )); @@ -75,14 +82,12 @@ sem_t * poolDataTabSemFd; ressourceSemFd = sem_open(ressourceSemId,O_CREAT,SEM_DEFAULT_MODE,0); if (ressourceSemFd == SEM_FAILED){ NZG_ERROR("sem_open",ressourceSemId); - return -1; + goto ERROR; } sem_post(ressourceSemFd); sem_close(ressourceSemFd); - - //sem_open ressource - //sem_post - //sem_close return 0; +ERROR: + return -1; }