Go to the source code of this file.
Classes | |
struct | ib_wqueue_struct |
Macros | |
#define | IB_WORK_QUEUE_H |
Typedefs | |
typedef struct ib_wqueue_struct | ib_wqueue_t |
Functions | |
UNIV_INTERN ib_wqueue_t * | ib_wqueue_create (void) |
UNIV_INTERN void | ib_wqueue_free (ib_wqueue_t *wq) |
UNIV_INTERN void | ib_wqueue_add (ib_wqueue_t *wq, void *item, mem_heap_t *heap) |
UNIV_INTERN void * | ib_wqueue_wait (ib_wqueue_t *wq) |
#define IB_WORK_QUEUE_H |
A Work queue. Threads can add work items to the queue and other threads can wait for work items to be available and take them off the queue for processing.
Definition at line 34 of file ut0wqueue.h.
UNIV_INTERN void ib_wqueue_add | ( | ib_wqueue_t * | wq, |
void * | item, | ||
mem_heap_t * | heap | ||
) |
Add a work item to the queue. in: memory heap to use for allocating the list node
Add a work item to the queue.
wq | in: work queue |
item | in: work item |
heap | in: memory heap to use for allocating the list node |
Definition at line 69 of file ut0wqueue.cc.
References ib_wqueue_struct::event, ib_list_add_last(), ib_wqueue_struct::items, ib_wqueue_struct::mutex, and os_event_set().
UNIV_INTERN ib_wqueue_t* ib_wqueue_create | ( | void | ) |
Create a new work queue.
Definition at line 33 of file ut0wqueue.cc.
References ib_wqueue_struct::event, ib_list_create(), ib_wqueue_struct::items, ib_wqueue_struct::mutex, and os_event_create().
UNIV_INTERN void ib_wqueue_free | ( | ib_wqueue_t * | wq | ) |
Free a work queue. in: work queue
Free a work queue.
wq | in: work queue |
Definition at line 52 of file ut0wqueue.cc.
References ib_wqueue_struct::event, ib_list_free(), ib_list_get_first(), ib_wqueue_struct::items, mem_free, ib_wqueue_struct::mutex, os_event_free(), and ut_a.
UNIV_INTERN void* ib_wqueue_wait | ( | ib_wqueue_t * | wq | ) |
Wait for a work item to appear in the queue.
Wait for a work item to appear in the queue.
wq | in: work queue |
Definition at line 89 of file ut0wqueue.cc.
References ib_list_node_struct::data, ib_wqueue_struct::event, ib_list_get_first(), ib_list_remove(), ib_wqueue_struct::items, ib_wqueue_struct::mutex, and os_event_reset().