diff --git a/src/put.c b/src/put.c index ebb2949..f92a0a2 100644 --- a/src/put.c +++ b/src/put.c @@ -49,7 +49,7 @@ int msgPut(msgSpace * space,int queueIndex, void * addr){ //ajouter le message a la bonne file... if (msgQueueAdd(queue,newElemId) < 0){ - NZG_ERROR("msgQueueAdd",""); + NZG_ERROR("msgQueueAdd",newElemId); goto ERROR; } diff --git a/src/queueAdd.c b/src/queueAdd.c index 8c4a492..393afb8 100644 --- a/src/queueAdd.c +++ b/src/queueAdd.c @@ -21,25 +21,25 @@ int msgQueueAdd(msgQueue * queue, msgQueueElemId newElemId){ /* TODO: verifier si la liste n'est pas vide... */ if((strcmp(queue->headId,queue->id)==0) && (strcmp(queue->tailId,queue->id)==0)) { - NZG_ERROR("msgQueueAdd",queue->id); + printf("- premier elem de queue -\n"); + // on donne a la queue l'id de l'element + strcpy(queue->headId,newElemId); + strcpy(queue->tailId,newElemId); + } else { + /* on informe son prédecesseur qu'il a un suivant */ + queueOldTailElem=msgQueueElemOpen(queue->tailId); + if (queueOldTailElem == NULL){ + NZG_ERROR("msgQueueElemOpen",queue->tailId); goto ERROR; + } + strcpy(queueOldTailElem->next,newElemId); + if (msgQueueElemClose(queueOldTailElem) < 0){ + NZG_ERROR("msgQueueElemClose",queue->tailId); + goto ERROR; + } + // on donne a la queue l'id du dernier element + strcpy(queue->tailId,newElemId); } - - - /* on informe son prédecesseur qu'il a un suivant */ - queueOldTailElem=msgQueueElemOpen(queue->tailId); - if (queueOldTailElem == NULL){ - NZG_ERROR("msgQueueElemOpen",queue->tailId); - goto ERROR; - } - strcpy(queueOldTailElem->next,newElemId); - if (msgQueueElemClose(queueOldTailElem)){ - NZG_ERROR("msgQueueElemClose",queue->tailId); - goto ERROR; - } - // on donne a la queue l'id du dernier element - strcpy(queue->tailId,newElemId); - // on incremente elemCounter queue->elemCounter++; return 0;