[#BloombergLP-bdlmt-MultiQueueThreadPool_Queue]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlmt.adoc[bdlmt]::MultiQueueThreadPool&lowbar;Queue
:relfileprefix: ../../
:mrdocs:

This private class provides a thread&hyphen;safe, lightweight job queue&period;

== Synopsis

Declared in `&lt;bdlmt&lowbar;multiqueuethreadpool&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class MultiQueueThreadPool&lowbar;Queue;
----

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/Job.adoc[`Job`] 
| Defines a type alias for the job functor type&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/2constructor-0508.adoc[`MultiQueueThreadPool&lowbar;Queue`]         [.small]#[constructor]#
| Create a queue bound to the specified multi&hyphen;queue thread pool&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/2destructor.adoc[`&#126;MultiQueueThreadPool&lowbar;Queue`] [.small]#[destructor]#
| Destroy this queue&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/batchSize.adoc[`batchSize`] 
| Return this queue&apos;s execution batch size&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/disable.adoc[`disable`] 
| Disable enqueuing to this queue&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/drainWaitWhilePausing.adoc[`drainWaitWhilePausing`] 
| Block until all threads waiting for this queue to pause are released&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/enable.adoc[`enable`] 
| Enable enqueuing to this queue&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/enqueueDeletion.adoc[`enqueueDeletion`] 
| Disable this queue and schedule its deletion&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/executeFront.adoc[`executeFront`] 
| Execute and dequeue the job at the front of this queue&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/initiatePause.adoc[`initiatePause`] 
| Begin pausing this queue without waiting for the current job&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/isDrained.adoc[`isDrained`] 
| Report whether all jobs in this queue are finished&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/isEnabled.adoc[`isEnabled`] 
| Report whether enqueuing to this object is enabled&period; This object is constructed with enqueuing enabled&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/isPaused.adoc[`isPaused`] 
| Report whether this object is paused&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/length.adoc[`length`] 
| Return an instantaneous snapshot of the length of this queue&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/pushBack.adoc[`pushBack`] 
| Enqueue `functor` at the back of this queue&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/pushFront.adoc[`pushFront`] 
| Add `functor` at the front of this queue&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/reset.adoc[`reset`] 
| Reset this queue to its initial state&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/resume.adoc[`resume`] 
| Allow jobs on this queue to begin executing&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/setBatchSize.adoc[`setBatchSize`] 
| Set this queue&apos;s job execution batch size&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/waitWhilePausing.adoc[`waitWhilePausing`] 
| Wait until the current job finishes and this queue is paused&period;
| xref:BloombergLP/bdlmt/MultiQueueThreadPool_Queue/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;MultiQueueThreadPool&lowbar;Queue, UsesBslmaAllocator&gt;`] 
| Declare that this type uses a `bslma` allocator&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
