(sched) when run() is invoked with blocking=False return the deadline of the next scheduled call in the scheduler; this use case was suggested in http://bugs.python.org/issue1641#msg149453

This commit is contained in:
Giampaolo Rodola' 2012-03-15 13:05:41 +01:00
parent 17160fd6d6
commit a4e018889a
2 changed files with 5 additions and 3 deletions

View File

@ -109,7 +109,8 @@ Scheduler Objects
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.
(if any) and then return the deadline of the next scheduled call in the
scheduler (if any).
Either *action* or *delayfunc* can raise an exception. In either case, the
scheduler will maintain a consistent state and propagate the exception. If an

View File

@ -97,7 +97,8 @@ class scheduler:
def run(self, blocking=True):
"""Execute events until the queue is empty.
If blocking is False executes the scheduled events due to
expire soonest (if any) and then return.
expire soonest (if any) and then return the deadline of the
next scheduled call in the scheduler.
When there is a positive delay until the first event, the
delay function is called and the event is left in the queue;
@ -129,7 +130,7 @@ class scheduler:
now = timefunc()
if now < time:
if not blocking:
return
return time - now
delayfunc(time - now)
else:
event = pop(q)