Subject: [Boost-bugs] [Boost C++ Libraries] #8666: boost::lockfree::spsc_queue::emplace_push
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-06-06 22:14:59
#8666: boost::lockfree::spsc_queue::emplace_push
-----------------------------------------------+--------------------------
Reporter: aubrey@⦠| Owner: timblechmann
Type: Feature Requests | Status: new
Milestone: To Be Determined | Component: lockfree
Version: Boost 1.53.0 | Severity: Optimization
Keywords: spsc_queue queue lockfree emplace |
-----------------------------------------------+--------------------------
It would be nice to be able to write the following function:
{{{
void producer_thread()
{
while(isRunning)
{
T& item = q.emplace_write(); // This feature avoids the need to
create the item
write(item);
q.emplace_push(); // This feature avoids the need to copy the item
}
}
}}}
Implementing this:
A slow consumer may be reading the item after the write index so the
change is not as easy as exposing the next item. The change would require
a gap of 1 item to always exist to avoid a read/write collision.
Jason Aubrey
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/8666> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:13 UTC