diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2014-02-10 22:42:32 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2014-02-10 22:42:32 (GMT) |
commit | 6cf5c9663004e40f4f9fdf0e1f84b2580ca6e5c7 (patch) | |
tree | dc869d35af0f420aa31c8b2ab96baf4832aa57be /Lib/asyncio | |
parent | b825a3937cc2445de598e47bbb310d2055ed993f (diff) | |
download | cpython-6cf5c9663004e40f4f9fdf0e1f84b2580ca6e5c7.zip cpython-6cf5c9663004e40f4f9fdf0e1f84b2580ca6e5c7.tar.gz cpython-6cf5c9663004e40f4f9fdf0e1f84b2580ca6e5c7.tar.bz2 |
Issue #20505: BaseEventLoop uses again the resolution of the clock to decide if
scheduled tasks should be executed or not.
Diffstat (limited to 'Lib/asyncio')
-rw-r--r-- | Lib/asyncio/base_events.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index 4207a7e..377ea21 100644 --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -96,6 +96,7 @@ class BaseEventLoop(events.AbstractEventLoop): self._default_executor = None self._internal_fds = 0 self._running = False + self._clock_resolution = time.get_clock_info('monotonic').resolution def _make_socket_transport(self, sock, protocol, waiter=None, *, extra=None, server=None): @@ -643,10 +644,10 @@ class BaseEventLoop(events.AbstractEventLoop): self._process_events(event_list) # Handle 'later' callbacks that are ready. - now = self.time() + end_time = self.time() + self._clock_resolution while self._scheduled: handle = self._scheduled[0] - if handle._when > now: + if handle._when >= end_time: break handle = heapq.heappop(self._scheduled) self._ready.append(handle) |