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

Name

Description

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

Name

Description

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

Name

Description

BloombergLP::bdlmt::MultiQueueThreadPool_Queue

This private class provides a thread‐safe, lightweight job queue.

Created with MrDocs