Main Page | Modules | Namespace List | Data Structures | File List | Data Fields | Globals | Related Pages

Thread Safe FIFO bounded queue
[APR Utility Functions]


Typedefs

typedef apr_queue_t apr_queue_t

Functions

apr_status_t apr_queue_create (apr_queue_t **queue, unsigned int queue_capacity, apr_pool_t *a)
apr_status_t apr_queue_push (apr_queue_t *queue, void *data)
apr_status_t apr_queue_pop (apr_queue_t *queue, void **data)
apr_status_t apr_queue_trypush (apr_queue_t *queue, void *data)
apr_status_t apr_queue_trypop (apr_queue_t *queue, void **data)
unsigned int apr_queue_size (apr_queue_t *queue)
apr_status_t apr_queue_interrupt_all (apr_queue_t *queue)
apr_status_t apr_queue_term (apr_queue_t *queue)

Typedef Documentation

typedef struct apr_queue_t apr_queue_t
 

opaque structure


Function Documentation

apr_status_t apr_queue_create apr_queue_t **  queue,
unsigned int  queue_capacity,
apr_pool_t *  a
 

create a FIFO queue

Parameters:
queue The new queue
queue_capacity maximum size of the queue
a pool to allocate queue from

apr_status_t apr_queue_interrupt_all apr_queue_t queue  ) 
 

interrupt all the threads blocking on this queue.

Parameters:
queue the queue

apr_status_t apr_queue_pop apr_queue_t queue,
void **  data
 

pop/get an object from the queue, blocking if the queue is already empty

Parameters:
queue the queue
data the data
Returns:
APR_EINTR the blocking was interrupted (try again)

APR_EOF if the queue has been terminated

APR_SUCCESS on a successfull pop

apr_status_t apr_queue_push apr_queue_t queue,
void *  data
 

push/add a object to the queue, blocking if the queue is already full

Parameters:
queue the queue
data the data
Returns:
APR_EINTR the blocking was interrupted (try again)

APR_EOF the queue has been terminated

APR_SUCCESS on a successfull push

unsigned int apr_queue_size apr_queue_t queue  ) 
 

returns the size of the queue.

Warning:
this is not threadsafe, and is intended for reporting/monitoring of the queue.
Parameters:
queue the queue
Returns:
the size of the queue

apr_status_t apr_queue_term apr_queue_t queue  ) 
 

terminate all queue, sendinging a interupt to all the blocking threads

Parameters:
queue the queue

apr_status_t apr_queue_trypop apr_queue_t queue,
void **  data
 

pop/get an object to the queue, returning immediatly if the queue is empty

Parameters:
queue the queue
data the data
Returns:
APR_EINTR the blocking operation was interrupted (try again)

APR_EAGAIN the queue is empty

APR_EOF the queue has been terminated

APR_SUCCESS on a successfull push

apr_status_t apr_queue_trypush apr_queue_t queue,
void *  data
 

push/add a object to the queue, returning immediatly if the queue is full

Parameters:
queue the queue
data the data
Returns:
APR_EINTR the blocking operation was interrupted (try again)

APR_EAGAIN the queue is full

APR_EOF the queue has been terminated

APR_SUCCESS on a successfull push


Generated on Tue Dec 7 18:34:58 2010 for Apache Portable Runtime Utility Library by  doxygen 1.3.9.1