#include <ProducerConsumer.h>
Collaboration diagram for qpid::sys::ProducerConsumer:

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... | |
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.
| void qpid::sys::ProducerConsumer::shutdown | ( | ) |
Wake any threads waiting for ProducerLock or ConsumerLock.
1.4.7