schuess
schuess

Reputation: 1059

boost::asio::strand && boost::lockfree::spsc_queue

If I am running a single an boost::asio::io_service with a thread pool and wrapping a particular socket receive using a boost::asio::strand to simulate single threaded operation, does anyone know if the strand meets the requirements to safely produce to a boost::lockfree::spsc_queue even though I will be producing from different threads but guaranteed to only produce one at a time.

Upvotes: 1

Views: 368

Answers (1)

Nim
Nim

Reputation: 33655

Yes. Serialization through a strand guarantees what you are after. To extend this a little bit, if you have multiple stands (for multiple sockets for example) - then no such guarantee exists across multiple strands pushing to the same queue.

Upvotes: 1

Related Questions