l3.libnazgul/src/queueElemDelete.c

34 lines
664 B
C
Raw Normal View History

2004-02-23 20:38:02 +00:00
#include "libnazgul.h"
int msgQueueElemDelete(msgQueueElemId queueElemId){
2004-02-26 09:23:37 +00:00
msgQueueElem * queueElem;
2004-02-23 20:38:02 +00:00
msgQueueElemId nextIdToDie;
2004-02-26 09:23:37 +00:00
queueElem = msgQueueElemOpen(queueElemId);
if (queueElem==NULL){
2019-09-17 12:49:28 +00:00
NZG_ERROR("msgQueueElemOpen",queueElemId);
goto ERROR;
}
2004-02-26 09:23:37 +00:00
strcpy(nextIdToDie, queueElem->next);
2004-02-23 22:06:42 +00:00
2004-02-26 09:23:37 +00:00
if (msgQueueElemClose(queueElem) < 0){
2019-09-17 12:49:28 +00:00
NZG_ERROR("msgQueueElemClose",queueElemId);
goto ERROR;
}
2004-02-26 09:23:37 +00:00
// on d<>truit l'<27>l<EFBFBD>ment
shm_unlink(queueElemId);
2004-02-23 22:06:42 +00:00
if (nextIdToDie != queueElemId){
2004-02-23 20:38:02 +00:00
return msgQueueElemDelete(nextIdToDie);
} else {
2004-02-26 09:23:37 +00:00
printf("msgQueueElemDelete: EOL reached \n");
// element unique...
2004-02-23 20:38:02 +00:00
return 0;
}
ERROR:
return -1;
}