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?