l3.libnazgul/src/queueElemDelete.c
2020-03-03 23:46:32 +01:00

29 lines
560 B
C

#include "libnazgul.h"
int msgQueueElemDelete(msgQueueElemId queueElemId){
msgQueueElem * queueElemAddr;
msgQueueElemId nextIdToDie;
queueElemAddr = msgQueueElemOpen(queueElemId);
if (queueElemAddr==NULL){
NZG_ERROR("msgQueueElemOpen",queueElemId);
goto ERROR;
}
strcpy(nextIdToDie, queueElemAddr->next);
if (msgQueueElemClose(queueElemAddr) < 0){
NZG_ERROR("msgQueueElemClose",queueElemId);
goto ERROR;
}
if (nextIdToDie != queueElemId){
return msgQueueElemDelete(nextIdToDie);
} else {
return 0;
}
ERROR:
return -1;
}