A platform for high-performance distributed tool and library development written in C++. It can be deployed in two different cluster modes: standalone or distributed. API for v0.5.0, released on June 13, 2018.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
pdb::PDBWorkerQueue Class Reference

#include <PDBWorkerQueue.h>

+ Collaboration diagram for pdb::PDBWorkerQueue:

Public Member Functions

 PDBWorkerQueue (PDBLoggerPtr myLogger, int numWorkers)
 
 ~PDBWorkerQueue ()
 
PDBWorkerPtr getWorker ()
 
void addAnotherWorker (void *stackStart, void *stackEnd)
 
void notifyAllWorkers (PDBAlarm withMe)
 
void enter ()
 
PDBLoggerPtr getLogger ()
 

Static Public Attributes

static const size_t defaultAllocatorBlockSize = (1024 * 64)
 

Private Attributes

vector< PDBWorkerPtrwaiting
 
pthread_mutex_t waitingMutex
 
pthread_cond_t waitingSignal
 
set< PDBWorkerPtrworking
 
vector< pthread_t > threads
 
pthread_mutex_t workingMutex
 
int numOut
 
bool shuttingDown
 
PDBLoggerPtr myLogger
 
void * origStackBase
 

Detailed Description

Definition at line 48 of file PDBWorkerQueue.h.

Constructor & Destructor Documentation

pdb::PDBWorkerQueue::PDBWorkerQueue ( PDBLoggerPtr  myLogger,
int  numWorkers 
)

Definition at line 34 of file PDBWorkerQueue.cc.

+ Here is the call graph for this function:

pdb::PDBWorkerQueue::~PDBWorkerQueue ( )

Definition at line 83 of file PDBWorkerQueue.cc.

+ Here is the call graph for this function:

Member Function Documentation

void pdb::PDBWorkerQueue::addAnotherWorker ( void *  stackStart,
void *  stackEnd 
)

Definition at line 162 of file PDBWorkerQueue.cc.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void pdb::PDBWorkerQueue::enter ( )

Definition at line 197 of file PDBWorkerQueue.cc.

+ Here is the caller graph for this function:

PDBLoggerPtr pdb::PDBWorkerQueue::getLogger ( )

Definition at line 79 of file PDBWorkerQueue.cc.

+ Here is the caller graph for this function:

PDBWorkerPtr pdb::PDBWorkerQueue::getWorker ( )

Definition at line 124 of file PDBWorkerQueue.cc.

+ Here is the caller graph for this function:

void pdb::PDBWorkerQueue::notifyAllWorkers ( PDBAlarm  withMe)

Definition at line 186 of file PDBWorkerQueue.cc.

Member Data Documentation

const size_t pdb::PDBWorkerQueue::defaultAllocatorBlockSize = (1024 * 64)
static

Definition at line 51 of file PDBWorkerQueue.h.

PDBLoggerPtr pdb::PDBWorkerQueue::myLogger
private

Definition at line 125 of file PDBWorkerQueue.h.

int pdb::PDBWorkerQueue::numOut
private

Definition at line 119 of file PDBWorkerQueue.h.

void* pdb::PDBWorkerQueue::origStackBase
private

Definition at line 129 of file PDBWorkerQueue.h.

bool pdb::PDBWorkerQueue::shuttingDown
private

Definition at line 122 of file PDBWorkerQueue.h.

vector<pthread_t> pdb::PDBWorkerQueue::threads
private

Definition at line 113 of file PDBWorkerQueue.h.

vector<PDBWorkerPtr> pdb::PDBWorkerQueue::waiting
private

Definition at line 103 of file PDBWorkerQueue.h.

pthread_mutex_t pdb::PDBWorkerQueue::waitingMutex
private

Definition at line 106 of file PDBWorkerQueue.h.

pthread_cond_t pdb::PDBWorkerQueue::waitingSignal
private

Definition at line 107 of file PDBWorkerQueue.h.

set<PDBWorkerPtr> pdb::PDBWorkerQueue::working
private

Definition at line 110 of file PDBWorkerQueue.h.

pthread_mutex_t pdb::PDBWorkerQueue::workingMutex
private

Definition at line 116 of file PDBWorkerQueue.h.


The documentation for this class was generated from the following files: