Runs a single iteration for the given main loop. This involves
checking to see if any event sources are ready to be processed,
then if no events sources are ready and may_block is TRUE, waiting
for a source to become ready, then dispatching the highest priority
events sources that are ready. Otherwise, if may_block is FALSE
sources are not waited to become ready, only those highest priority
events sources will be dispatched (if any), that are ready at this
given moment without further waiting.
Note that even when may_block is TRUE, it is still possible for
MainContext.iteration to return FALSE, since the wait may
be interrupted for other reasons than an event source becoming ready.
Runs a single iteration for the given main loop. This involves checking to see if any event sources are ready to be processed, then if no events sources are ready and may_block is TRUE, waiting for a source to become ready, then dispatching the highest priority events sources that are ready. Otherwise, if may_block is FALSE sources are not waited to become ready, only those highest priority events sources will be dispatched (if any), that are ready at this given moment without further waiting.
Note that even when may_block is TRUE, it is still possible for MainContext.iteration to return FALSE, since the wait may be interrupted for other reasons than an event source becoming ready.