<a href="../../../libs/utility/call_traits.htm" target="_top">Boost.call_traits utility</a>.
</p>
<p>
- The <code class="computeroutput"><a class="link" href="../boost/circular_buffer.html#idm45097336688016-bb">push_front()</a></code>
+ The <code class="computeroutput"><a class="link" href="../boost/circular_buffer.html#idm46495624748464-bb">push_front()</a></code>
method is called by the producer thread in order to insert a new item into
the buffer. The method locks the mutex and waits until there is a space for
the new item. (The mutex is unlocked during the waiting stage and has to be
consumer threads waiting for a new item to be inserted into the buffer.
</p>
<p>
- The <code class="computeroutput"><a class="link" href="../boost/circular_buffer.html#idm45097336643248-bb">pop_back()</a></code>
+ The <code class="computeroutput"><a class="link" href="../boost/circular_buffer.html#idm46495624703696-bb">pop_back()</a></code>
method is called by the consumer thread in order to read the next item from
the buffer. The method locks the mutex and waits until there is an unread item
in the buffer. If there is at least one unread item, the method decrements
the item</strong></span> but the item is left in the circular_buffer which then
<span class="bold"><strong>replaces it with a new one</strong></span> (inserted by a
producer) when the circular_buffer is full. This technique is more effective
- than removing the item explicitly by calling the <code class="computeroutput"><a class="link" href="../boost/circular_buffer.html#idm45097336643248-bb">circular_buffer::pop_back()</a></code>
+ than removing the item explicitly by calling the <code class="computeroutput"><a class="link" href="../boost/circular_buffer.html#idm46495624703696-bb">circular_buffer::pop_back()</a></code>
method of the <code class="computeroutput"><a class="link" href="../boost/circular_buffer.html" title="Class template circular_buffer">circular_buffer</a></code>.
</p>
<p>