From a4e018889ac3537e10b48811b4be6356e633b8a0 Mon Sep 17 00:00:00 2001 From: Giampaolo Rodola' Date: Thu, 15 Mar 2012 13:05:41 +0100 Subject: (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 --- Doc/library/sched.rst | 3 ++- Lib/sched.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Doc/library/sched.rst b/Doc/library/sched.rst index 957bdd3..d6c86c7 100644 --- a/Doc/library/sched.rst +++ b/Doc/library/sched.rst @@ -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 diff --git a/Lib/sched.py b/Lib/sched.py index bd1f427..a89a118 100644 --- a/Lib/sched.py +++ b/Lib/sched.py @@ -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) -- cgit v0.12