*** empty log message ***
This commit is contained in:
parent
0e263ac413
commit
52e7fa02fc
11 changed files with 62 additions and 30 deletions
|
@ -19,6 +19,9 @@ printf("Locking %s\n",space->poolDataTabSemId);
|
||||||
NZG_ERROR("sem_wait",space->poolDataTabSemId);
|
NZG_ERROR("sem_wait",space->poolDataTabSemId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
}
|
}
|
||||||
|
int semval=0;
|
||||||
|
sem_getvalue(poolDataTabSemFd,&semval);
|
||||||
|
printf("(AfternValue:%d)\n",semval);
|
||||||
|
|
||||||
sem_close(poolDataTabSemFd);
|
sem_close(poolDataTabSemFd);
|
||||||
|
|
||||||
|
|
|
@ -4,15 +4,12 @@
|
||||||
|
|
||||||
int msgPoolDataTabUnlock(msgSpace * space){
|
int msgPoolDataTabUnlock(msgSpace * space){
|
||||||
sem_t * poolDataTabSemFd;
|
sem_t * poolDataTabSemFd;
|
||||||
printf("Locking %s\n",space->poolDataTabSemId);
|
printf("Unlocking %s\n",space->poolDataTabSemId);
|
||||||
poolDataTabSemFd=sem_open(
|
poolDataTabSemFd=sem_open(
|
||||||
space->poolDataTabSemId
|
space->poolDataTabSemId
|
||||||
,O_CREAT,
|
,O_CREAT,
|
||||||
SEM_DEFAULT_MODE,
|
SEM_DEFAULT_MODE,
|
||||||
1);
|
1);
|
||||||
int semval=0;
|
|
||||||
sem_getvalue(poolDataTabSemFd,&semval);
|
|
||||||
printf("(Value:%d)",semval);
|
|
||||||
if(poolDataTabSemFd==SEM_FAILED){
|
if(poolDataTabSemFd==SEM_FAILED){
|
||||||
NZG_ERROR("sem_open",space->poolDataTabSemId);
|
NZG_ERROR("sem_open",space->poolDataTabSemId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
|
@ -22,6 +19,9 @@ printf("Locking %s\n",space->poolDataTabSemId);
|
||||||
NZG_ERROR("sem_post",space->poolDataTabSemId);
|
NZG_ERROR("sem_post",space->poolDataTabSemId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
}
|
}
|
||||||
|
int semval=0;
|
||||||
|
sem_getvalue(poolDataTabSemFd,&semval);
|
||||||
|
printf("(AfternValue:%d)\n",semval);
|
||||||
|
|
||||||
sem_close(poolDataTabSemFd);
|
sem_close(poolDataTabSemFd);
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,9 @@ int msgPut(msgSpace * space,int queueIndex, void * addr){
|
||||||
int poolIndex;
|
int poolIndex;
|
||||||
int bufferIndex;
|
int bufferIndex;
|
||||||
int err;
|
int err;
|
||||||
|
msgQueueElemId newElemId;
|
||||||
|
msgQueueElem * queueElem;
|
||||||
|
|
||||||
msgPoolDataTabLock(space);
|
msgPoolDataTabLock(space);
|
||||||
poolDataTabAddr=msgPoolDataTabOpen(space);
|
poolDataTabAddr=msgPoolDataTabOpen(space);
|
||||||
if (poolDataTabAddr == NULL){
|
if (poolDataTabAddr == NULL){
|
||||||
|
@ -28,10 +31,8 @@ int msgPut(msgSpace * space,int queueIndex, void * addr){
|
||||||
msgQueueProtLock(space->externId,queueIndex);
|
msgQueueProtLock(space->externId,queueIndex);
|
||||||
queue = msgQueueOpen(queueId);
|
queue = msgQueueOpen(queueId);
|
||||||
|
|
||||||
// TODO:creer un element vide
|
// creer un element vide
|
||||||
msgQueueElemId newElemId;
|
|
||||||
msgQueueElem * queueElem;
|
|
||||||
|
|
||||||
msgQueueElemCreate(newElemId,queueId,queue->elemCounter);
|
msgQueueElemCreate(newElemId,queueId,queue->elemCounter);
|
||||||
// ouvrir l'element
|
// ouvrir l'element
|
||||||
queueElem=msgQueueElemOpen(newElemId);
|
queueElem=msgQueueElemOpen(newElemId);
|
||||||
|
|
|
@ -12,7 +12,6 @@ msgQueue * msgQueueInit(msgSpaceId externId, int queueIdx) {
|
||||||
|
|
||||||
queue = NULL;
|
queue = NULL;
|
||||||
|
|
||||||
printf("ploped init queue ?\n");
|
|
||||||
|
|
||||||
msgQueueProtSemIdIntern(queueSemProtectId,externId,queueIdx);
|
msgQueueProtSemIdIntern(queueSemProtectId,externId,queueIdx);
|
||||||
msgQueueReadSemIdIntern(queueSemReadableId,externId,queueIdx);
|
msgQueueReadSemIdIntern(queueSemReadableId,externId,queueIdx);
|
||||||
|
@ -27,16 +26,16 @@ msgQueue * msgQueueInit(msgSpaceId externId, int queueIdx) {
|
||||||
|
|
||||||
// creation du semaphore de protection
|
// creation du semaphore de protection
|
||||||
semProtectFd = sem_open(queueSemProtectId,
|
semProtectFd = sem_open(queueSemProtectId,
|
||||||
O_CREAT|O_EXCL, SEM_DEFAULT_MODE, 1);
|
O_CREAT|O_EXCL, SEM_DEFAULT_MODE, 0);
|
||||||
if(semProtectFd == SEM_FAILED) {
|
if(semProtectFd == SEM_FAILED) {
|
||||||
NZG_ERROR("sem_open", queueSemProtectId);
|
NZG_ERROR("sem_open", queueSemProtectId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(sem_wait(semProtectFd)==-1){
|
/* if(sem_wait(semProtectFd)==-1){
|
||||||
NZG_ERROR("sem_wait",queueSemProtectId);
|
NZG_ERROR("sem_wait",queueSemProtectId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
}
|
} */
|
||||||
|
|
||||||
if(msgQueueIdIntern(queueId, externId, queueIdx) < 0) {
|
if(msgQueueIdIntern(queueId, externId, queueIdx) < 0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -44,27 +43,26 @@ msgQueue * msgQueueInit(msgSpaceId externId, int queueIdx) {
|
||||||
|
|
||||||
queueFd = shm_open(queueId, O_RDWR|O_CREAT|O_EXCL|O_TRUNC, MSGSPACE_DEFAULT_MODE);
|
queueFd = shm_open(queueId, O_RDWR|O_CREAT|O_EXCL|O_TRUNC, MSGSPACE_DEFAULT_MODE);
|
||||||
if(queueFd == -1) {
|
if(queueFd == -1) {
|
||||||
fprintf(stderr, "queueInit : %s initialisation failed: %s\n", queueId, strerror(errno));
|
NZG_ERROR("shm_open : queueInit",queueId);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ftruncate(queueFd, sizeof(* queue)) == -1) {
|
if(ftruncate(queueFd, sizeof(msgQueue)) == -1) {
|
||||||
fprintf( stderr, "Queue resizing failed: %s\n",
|
fprintf( stderr, "Queue resizing failed: %s\n",
|
||||||
strerror( errno ) );
|
strerror( errno ) );
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
queue=msgQueueOpen(queueId);
|
||||||
/* on remplit la structure msgQueue */
|
/* on remplit la structure msgQueue */
|
||||||
queue->elemCounter = 0;
|
queue->elemCounter = 0;
|
||||||
|
strcpy(queue->id,queueId);
|
||||||
strcpy(queue->headId,queue->id);
|
strcpy(queue->headId,queue->id);
|
||||||
strcpy(queue->tailId,queue->id);
|
strcpy(queue->tailId,queue->id);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* on ferme tout ce qu'il faut */
|
/* on ferme tout ce qu'il faut */
|
||||||
sem_close(semProtectFd);
|
|
||||||
close(queueFd);
|
close(queueFd);
|
||||||
|
msgQueueProtUnlock(externId,queueIdx);
|
||||||
|
|
||||||
return queue;
|
return queue;
|
||||||
ERROR:
|
ERROR:
|
||||||
|
|
|
@ -6,7 +6,8 @@ int msgQueueProtLock(msgSpaceId externId,int queueIdx){
|
||||||
msgQueueSemId queueSemId;
|
msgQueueSemId queueSemId;
|
||||||
|
|
||||||
msgQueueProtSemIdIntern(queueSemId,externId,queueIdx);
|
msgQueueProtSemIdIntern(queueSemId,externId,queueIdx);
|
||||||
queueSemFd=sem_open(queueSemId,O_CREAT|O_EXCL,SEM_DEFAULT_MODE,1);
|
printf("Locking %s\n",queueSemId);
|
||||||
|
queueSemFd=sem_open(queueSemId,O_CREAT,SEM_DEFAULT_MODE,1);
|
||||||
if(queueSemFd==SEM_FAILED){
|
if(queueSemFd==SEM_FAILED){
|
||||||
NZG_ERROR("sem_open",queueSemId);
|
NZG_ERROR("sem_open",queueSemId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
|
@ -16,6 +17,12 @@ int msgQueueProtLock(msgSpaceId externId,int queueIdx){
|
||||||
NZG_ERROR("sem_wait",queueSemId);
|
NZG_ERROR("sem_wait",queueSemId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
}
|
}
|
||||||
|
int semval=0;
|
||||||
|
sem_getvalue(queueSemFd,&semval);
|
||||||
|
printf("(AfterValue:%d)\n",semval);
|
||||||
|
|
||||||
|
sem_close(queueSemFd);
|
||||||
|
|
||||||
|
|
||||||
sem_close(queueSemFd);
|
sem_close(queueSemFd);
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,9 @@ int msgQueueProtUnlock(msgSpaceId externId,int queueIdx){
|
||||||
msgQueueSemId queueSemId;
|
msgQueueSemId queueSemId;
|
||||||
|
|
||||||
msgQueueProtSemIdIntern(queueSemId,externId,queueIdx);
|
msgQueueProtSemIdIntern(queueSemId,externId,queueIdx);
|
||||||
queueSemFd=sem_open(queueSemId,O_CREAT|O_EXCL,SEM_DEFAULT_MODE,1);
|
printf("Unlocking %s\n",queueSemId);
|
||||||
|
|
||||||
|
queueSemFd=sem_open(queueSemId,O_CREAT,SEM_DEFAULT_MODE,1);
|
||||||
if(queueSemFd==SEM_FAILED){
|
if(queueSemFd==SEM_FAILED){
|
||||||
NZG_ERROR("sem_open",queueSemId);
|
NZG_ERROR("sem_open",queueSemId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
|
@ -16,6 +18,9 @@ int msgQueueProtUnlock(msgSpaceId externId,int queueIdx){
|
||||||
NZG_ERROR("sem_post",queueSemId);
|
NZG_ERROR("sem_post",queueSemId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
}
|
}
|
||||||
|
int semval=0;
|
||||||
|
sem_getvalue(queueSemFd,&semval);
|
||||||
|
printf("(AfterValue:%d)\n",semval);
|
||||||
|
|
||||||
sem_close(queueSemFd);
|
sem_close(queueSemFd);
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,8 @@ int msgQueueReadLock(msgSpaceId externId,int queueIdx){
|
||||||
msgQueueSemId queueSemId;
|
msgQueueSemId queueSemId;
|
||||||
|
|
||||||
msgQueueReadSemIdIntern(queueSemId,externId,queueIdx);
|
msgQueueReadSemIdIntern(queueSemId,externId,queueIdx);
|
||||||
queueSemFd=sem_open(queueSemId,O_CREAT|O_EXCL,SEM_DEFAULT_MODE,1);
|
printf("Locking %s\n",queueSemId);
|
||||||
|
queueSemFd=sem_open(queueSemId,O_CREAT,SEM_DEFAULT_MODE,1);
|
||||||
if(queueSemFd==SEM_FAILED){
|
if(queueSemFd==SEM_FAILED){
|
||||||
NZG_ERROR("sem_open",queueSemId);
|
NZG_ERROR("sem_open",queueSemId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
|
@ -16,6 +17,12 @@ int msgQueueReadLock(msgSpaceId externId,int queueIdx){
|
||||||
NZG_ERROR("sem_wait",queueSemId);
|
NZG_ERROR("sem_wait",queueSemId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
}
|
}
|
||||||
|
int semval=0;
|
||||||
|
sem_getvalue(queueSemFd,&semval);
|
||||||
|
printf("(AfterValue:%d)\n",semval);
|
||||||
|
|
||||||
|
sem_close(queueSemFd);
|
||||||
|
|
||||||
|
|
||||||
sem_close(queueSemFd);
|
sem_close(queueSemFd);
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ int msgQueueReadTryLock(msgSpaceId externId,int queueIdx){
|
||||||
msgQueueSemId queueSemId;
|
msgQueueSemId queueSemId;
|
||||||
|
|
||||||
msgQueueReadSemIdIntern(queueSemId,externId,queueIdx);
|
msgQueueReadSemIdIntern(queueSemId,externId,queueIdx);
|
||||||
queueSemFd=sem_open(queueSemId,O_CREAT|O_EXCL,SEM_DEFAULT_MODE,1);
|
queueSemFd=sem_open(queueSemId,O_CREAT,SEM_DEFAULT_MODE,1);
|
||||||
if(queueSemFd==SEM_FAILED){
|
if(queueSemFd==SEM_FAILED){
|
||||||
NZG_ERROR("sem_open",queueSemId);
|
NZG_ERROR("sem_open",queueSemId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
|
@ -16,6 +16,13 @@ int msgQueueReadTryLock(msgSpaceId externId,int queueIdx){
|
||||||
NZG_ERROR("sem_wait",queueSemId);
|
NZG_ERROR("sem_wait",queueSemId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
}
|
}
|
||||||
|
printf("Locking %s\n",queueSemId);
|
||||||
|
int semval=0;
|
||||||
|
sem_getvalue(queueSemFd,&semval);
|
||||||
|
printf("(AfterValue:%d)\n",semval);
|
||||||
|
|
||||||
|
sem_close(queueSemFd);
|
||||||
|
|
||||||
|
|
||||||
sem_close(queueSemFd);
|
sem_close(queueSemFd);
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,8 @@ int msgQueueReadUnlock(msgSpaceId externId,int queueIdx){
|
||||||
msgQueueSemId queueSemId;
|
msgQueueSemId queueSemId;
|
||||||
|
|
||||||
msgQueueReadSemIdIntern(queueSemId,externId,queueIdx);
|
msgQueueReadSemIdIntern(queueSemId,externId,queueIdx);
|
||||||
queueSemFd=sem_open(queueSemId,O_CREAT|O_EXCL,SEM_DEFAULT_MODE,1);
|
printf("Unlocking %s\n",queueSemId);
|
||||||
|
queueSemFd=sem_open(queueSemId,O_CREAT,SEM_DEFAULT_MODE,1);
|
||||||
if(queueSemFd==SEM_FAILED){
|
if(queueSemFd==SEM_FAILED){
|
||||||
NZG_ERROR("sem_open",queueSemId);
|
NZG_ERROR("sem_open",queueSemId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
|
@ -16,6 +17,10 @@ int msgQueueReadUnlock(msgSpaceId externId,int queueIdx){
|
||||||
NZG_ERROR("sem_post",queueSemId);
|
NZG_ERROR("sem_post",queueSemId);
|
||||||
goto ERROR;
|
goto ERROR;
|
||||||
}
|
}
|
||||||
|
int semval=0;
|
||||||
|
sem_getvalue(queueSemFd,&semval);
|
||||||
|
printf("(AfterValue:%d)\n",semval);
|
||||||
|
|
||||||
|
|
||||||
sem_close(queueSemFd);
|
sem_close(queueSemFd);
|
||||||
|
|
||||||
|
|
|
@ -95,8 +95,6 @@ msgSpace * msgSpaceCreate(
|
||||||
}
|
}
|
||||||
sem_close(mSDataTabSemFd);
|
sem_close(mSDataTabSemFd);
|
||||||
|
|
||||||
// msgPoolDataTabLock(space);
|
|
||||||
|
|
||||||
/* attacher le tableau des msgPoolData */
|
/* attacher le tableau des msgPoolData */
|
||||||
poolDataTabAddr=msgPoolDataTabCreate(space);
|
poolDataTabAddr=msgPoolDataTabCreate(space);
|
||||||
if (poolDataTabAddr == NULL){
|
if (poolDataTabAddr == NULL){
|
||||||
|
|
|
@ -26,6 +26,7 @@ int main(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("CREATION ------------------ ok\n");
|
printf("CREATION ------------------ ok\n");
|
||||||
|
sleep(1);
|
||||||
pid_t pid=fork();
|
pid_t pid=fork();
|
||||||
|
|
||||||
if (pid ==0){
|
if (pid ==0){
|
||||||
|
|
Loading…
Reference in a new issue