extern void eo_fifo_Delete(EOfifo * fifo) { if(NULL == fifo) { // invalid fifo return; } if(NULL == fifo->dek) { return; } if(NULL != fifo->mutex) { eov_mutex_Take(fifo->mutex, eok_reltimeINFINITE); } eo_fifo_Clear(fifo, eok_reltimeINFINITE); eo_mempool_Delete(eo_mempool_GetHandle(), fifo->dek); fifo->dek = NULL; if(NULL != fifo->mutex) { //eov_mutex_Release(fifo->mutex); // however, if someone is waiting for this mutex, then there is a crash ... so, maybe better not to release } memset(fifo, 0, sizeof(EOfifo)); eo_mempool_Delete(eo_mempool_GetHandle(), fifo); return; }
extern eOresult_t eo_fifoword_Clear(EOfifoWord *fifoword, eOreltime_t tout) { if(NULL == fifoword) { return(eores_NOK_nullpointer); } return(eo_fifo_Clear(fifoword->fifo, tout)); }