Boost logo

Boost Users :

Subject: [Boost-users] [multi state machine/ MSM] execute_queued_events
From: Steve Hickman (steve.hickman_at_[hidden])
Date: 2014-09-19 13:18:34


In the MSM doc section "Enqueueing events for later processing", you state
that "Calling execute_queued_events() will then process all enqueued
events (in FIFO order)."

You also said in a previous post that MSM is not thread safe, thus
requiring an external mechanism to insure thread safety.

I don't see a mechanism to execute a single event at a time, which would
be preferable if I have to lock the queue while processing events. Having
said that, a cursory examination of the "execute_queued_events" code makes
me think it only processes one event per call.

Which is correct? Is the documentation correct that it actually processes
all queued events? If not, can the documentation be corrected? If so, is
there a publicly usable call to process a single queued event? If there is
no publicly available call for processing a single queued event, how do
you recommend processing queued events in a thread safe manner that won't
lock the queue for extended periods of time?


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net