BloombergLP::bdlmt::MultiQueueThreadPool

This class implements a dynamic, configurable pool of queues, each of which is processed serially by a thread pool.

Synopsis

Declared in <bdlmt_multiqueuethreadpool.h>

class MultiQueueThreadPool;

Type Aliases

NameDescription
CleanupFunctor Defines a type alias for the queue cleanup functor type.
Job Defines a type alias for the job functor type.
QueueRegistry Defines a type alias for the registry mapping queue IDs to queues.

Member Functions

NameDescription
MultiQueueThreadPool [constructor]Constructors
~MultiQueueThreadPool [destructor]Destroy this multi-queue thread pool.
addJobAtFront addJobAtFront overloads
batchSize Return the batch size of queue id, or -1 if invalid.
createQueue Create a new queue and return its non-zero identifier.
deleteQueue deleteQueue overloads
disableQueue Disable enqueuing to the queue associated with the specified id.
drain Wait until all non-paused queues are empty.
drainQueue Wait until all jobs in the queue with the specified id finish.
enableQueue Enable enqueuing to the queue associated with the specified id.
enqueueJob enqueueJob overloads
isEnabled Return true if the queue associated with the specified id is currently enabled, or false otherwise (including if id is not a valid queue id).
isPaused Return true if the queue associated with the specified id is currently paused, or false otherwise (including if id is not a valid queue id).
numElements numElements overloads
numProcessed Load processed item counts into the output parameters.
numProcessedReset Reset and return processed/enqueued/deleted counts.
numQueues Return an instantaneous snapshot of the number of queues managed by this object.
pauseQueue Pause the queue with the specified id after the current job finishes.
resumeQueue Allow jobs on the queue with the specified id to begin executing. Return 0 on success, and a non-zero value if the queue does not exist or is not paused.
setBatchSize Set the job execution batch size for the queue with the specified id.
shutdown Disable queuing, delete all queues, and shut down the owned pool.
start Start queuing and the owned thread pool.
stop Disable queuing and stop the owned thread pool once queues drain.
threadPool Return a reference to the non-modifiable thread pool owned by this object.
operator BloombergLP::bslmf::NestedTraitDeclaration<MultiQueueThreadPool, UsesBslmaAllocator> Declare that this type uses a bslma allocator.

Friends

NameDescription
BloombergLP::bdlmt::MultiQueueThreadPool_QueueThis private class provides a thread-safe, lightweight job queue.