<p>This class implements the work-stealing queue described in the paper, "Correct and Efficient Work-Stealing for Weak Memory Models," available at <ahref="https://www.di.ens.fr/~zappa/readings/ppopp13.pdf">https:/<wbr/>/<wbr/>www.di.ens.fr/<wbr/>~zappa/<wbr/>readings/<wbr/>ppopp13.pdf</a>.</p><p>Only the queue owner can perform pop and push operations, while others can steal data from the queue.</p>
<p>Only the owner thread can pop out an item from the queue. The return can be a <ahref="https://en.cppreference.com/w/cpp/utility/optional/nullopt">std::<wbr/>nullopt</a> if this operation failed (empty queue).</p>
<p>Any threads can try to steal an item from the queue. The return can be a <ahref="https://en.cppreference.com/w/cpp/utility/optional/nullopt">std::<wbr/>nullopt</a> if this operation failed (not necessary empty).</p>
</div></section>
</section>
</div>
</div>
</div>
</article></main>
<divclass="m-doc-search" id="search">
<ahref="#!" onclick="return hideSearch()"></a>
<divclass="m-container">
<divclass="m-row">
<divclass="m-col-m-8 m-push-m-2">
<divclass="m-doc-search-header m-text m-small">
<div><spanclass="m-label m-default">Tab</span> / <spanclass="m-label m-default">T</span> to search, <spanclass="m-label m-default">Esc</span> to close</div>