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;    
}
Beispiel #2
0
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));
}