Main Page   Packages   Modules   Data Structures   File List   Data Fields   Globals  

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 Fri Dec 26 01:49:08 2003 for Apache Portable Runtime Utility Library by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002