qpid::sys::ProducerConsumer Class Reference

Producer-consumer synchronisation. More...

#include <ProducerConsumer.h>

Collaboration diagram for qpid::sys::ProducerConsumer:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ProducerConsumer (size_t init_items=0)
void shutdown ()
 Wake any threads waiting for ProducerLock or ConsumerLock.
bool isShutdown ()
 True if queue is shutdown.
size_t available () const
 Number of items available for consumers.
size_t consumers () const
 Number of consumers waiting for items.
bool empty () const
 True if available == 0.

Classes

struct  ConsumerLock
 Lock for code that consumes items. More...
class  Lock
 Base class for producer and consumer locks. More...
struct  ProducerLock
 Lock for code that produces items. More...

Detailed Description

Producer-consumer synchronisation.

Producers increase the number of available items, consumers reduce it. Consumers wait till an item is available. Waiting threads can be woken for shutdown using shutdown().

Note: Currently implements unbounded producer-consumer, i.e. no limit to available items, producers never block. Can be extended to support bounded PC if required.

TODO aconway 2007-02-13: example, from tests.


Member Function Documentation

void qpid::sys::ProducerConsumer::shutdown (  ) 

Wake any threads waiting for ProducerLock or ConsumerLock.

Postcondition:
No threads are waiting in Producer or Consumer locks.


The documentation for this class was generated from the following file:
Generated on Tue Apr 17 14:22:22 2007 for Qpid by  doxygen 1.4.7