Thread Safe FIFO bounded queue
[APR Utility Functions]


Typedefs

typedef struct 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 Sat Aug 16 19:14:10 2008 for Apache Portable Runtime Utility Library by  doxygen 1.5.6