/*******************************************************************//**
@file ut/ut0wqueue.cc
A work queue
Created 4/26/2006 Osku Salerma
************************************************************************/
/****************************************************************//**
Create a new work queue.
@return work queue */
ib_wqueue_t*
ib_wqueue_create(void) /*===================*/
{
ib_wqueue_t* wq = static_cast<ib_wqueue_t*>(
ut_malloc_nokey(sizeof(*wq)));
mysql_mutex_init(0, &wq->mutex, nullptr);
wq->items = ib_list_create();
wq->length = 0;
return(wq);
}
/****************************************************************//**
Free a work queue. */ void
ib_wqueue_free( /*===========*/
ib_wqueue_t* wq) /*!< in: work queue */
{
mysql_mutex_destroy(&wq->mutex);
ib_list_free(wq->items);
ut_free(wq);
}
/** Add a work item to the queue. @param[in,out]wqworkqueue @param[in]itemworkitem @param[in,out]heapmemoryheaptouseforallocatinglistnode
@param[in] wq_locked work queue mutex locked */ void
ib_wqueue_add(ib_wqueue_t* wq, void* item, mem_heap_t* heap, bool wq_locked)
{ if (!wq_locked) {
mysql_mutex_lock(&wq->mutex);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.