#include <WorkItemPool.h>
Public Member Functions | |
WorkItemPool () | |
~WorkItemPool () | |
void | reservePoolSize (const unsigned int reservedPoolSize) volatile |
void | waitForPoolEmpty (const unsigned int secWait=0) volatile |
void | waitToWrite (pthread_t selfId) volatile |
void | addPoolItem (const string &id, const WorkItem< T > &item) volatile |
void | addUniquePoolItem (const string id, const WorkItem< T > &item) volatile |
WorkItem< T > | getPoolItem (const string id, const bool throwOnError=true) volatile |
WorkItem< T > | getPoolItem (const bool lock=true) volatile |
WorkItem< T > | removePoolItem (const bool lock=true) volatile |
void | erasePoolItem (string id, const bool throwOnError=true) volatile |
WorkItem< T > | removePoolItem (string id, const bool throwOnError=true) volatile |
void | Dump () volatile |
unsigned int | getSize () volatile |
void | SignalAllReaders () |
void | SignalReaders () |
void | SignalWriters () |
void | ShutdownPool () |
void | ShutdownPoolWriters () |
bool | IsRunning () const |
Private Types | |
typedef pair< string, WorkItem < T > > | WorkItemPool_QueuedItemType |
typedef deque < WorkItemPool_QueuedItemType > | WorkItemPool_QueueType |
typedef map< pthread_t, unsigned int > | WorkItemPool_CounterType |
Private Member Functions | |
WorkItemPool (const WorkItemPool &) | |
WorkItemPool & | operator= (const WorkItemPool &) |
Static Private Member Functions | |
static void | DeleteReserves (void *data) |
Private Attributes | |
pthread_key_t | ReserveKey |
bool | m_Shutdown |
volatile WorkItemPool_QueueType | m_Pool |
volatile WorkItemPool_CounterType | m_WriterItems |
pthread_mutex_t | PoolSyncMutex |
pthread_mutex_t | ReserveSyncMutex |
pthread_cond_t | PoolReaderBarrier |
pthread_cond_t | PoolWriterBarrier |
|
private |
|
private |
|
private |
|
private |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestaticprivate |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |