#include "libnazgul.h"

int msgQueueElemDelete(msgQueueElemId queueElemId){
  msgQueueElem * queueElemAddr;
  msgQueueElemId nextIdToDie;
  
  queueElemAddr = msgQueueElemOpen(queueElemId);
  if (queueElemAddr==NULL){
	NZG_ERROR("msgQueueElemOpen",queueElemId);
	goto ERROR;
  }

  if (msgQueueElemClose(queueElemAddr) < 0){
  	NZG_ERROR("msgQueueElemClose",queueElemId);
	goto ERROR;
  }

  if (nextIdToDie != NULL){
	return msgQueueElemDelete(nextIdToDie);
  } else {
	return 0;
  }

ERROR:
  return -1;
}