[Boost-bugs] [Boost C++ Libraries] #8666: boost::lockfree::spsc_queue::emplace_push

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