Fix #13449: add 'blocking' parameter to sched.scheduler.run() so that the scheduler can be used in non-blocking applications

This commit is contained in:
Giampaolo Rodola' 2011-12-14 14:38:45 +01:00
parent 73520d57eb
commit 556ba04a8d
5 changed files with 34 additions and 4 deletions

View file

@ -102,12 +102,15 @@ Scheduler Objects
Return true if the event queue is empty.
.. method:: scheduler.run()
.. method:: scheduler.run(blocking=True)
Run all scheduled events. This function will wait (using the :func:`delayfunc`
Run all scheduled events. This method will wait (using the :func:`delayfunc`
function passed to the constructor) for the next event, then execute it and so
on until there are no more scheduled events.
If *blocking* is False executes the scheduled events due to expire soonest
(if any) and then return.
Either *action* or *delayfunc* can raise an exception. In either case, the
scheduler will maintain a consistent state and propagate the exception. If an
exception is raised by *action*, the event will not be attempted in future calls
@ -118,6 +121,9 @@ Scheduler Objects
the calling code is responsible for canceling events which are no longer
pertinent.
.. versionadded:: 3.3
*blocking* parameter was added.
.. attribute:: scheduler.queue
Read-only attribute returning a list of upcoming events in the order they