diff options
-rw-r--r-- | Lib/asyncio/base_events.py | 6 | ||||
-rw-r--r-- | Lib/test/test_asyncio/test_events.py | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index 558406c..4207a7e 100644 --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -633,7 +633,13 @@ class BaseEventLoop(events.AbstractEventLoop): else: logger.log(level, 'poll took %.3f seconds', t1-t0) else: + t0 = self.time() event_list = self._selector.select(timeout) + dt = self.time() - t0 + if not event_list and timeout and dt < timeout: + print("asyncio: selector.select(%.3f ms) took %.3f ms" + % (timeout*1e3, dt*1e3), + file=sys.__stderr__, flush=True) self._process_events(event_list) # Handle 'later' callbacks that are ready. diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py index 4fb4b25..e6a1c97 100644 --- a/Lib/test/test_asyncio/test_events.py +++ b/Lib/test/test_asyncio/test_events.py @@ -1182,7 +1182,10 @@ class EventLoopTestsMixin: # may sleep at little bit less than timeout depending on the resolution # of the clock used by the kernel. Tolerate 2 useless calls on these # platforms. - self.assertLessEqual(self.loop._run_once_counter, 8) + self.assertLessEqual(self.loop._run_once_counter, 8, + {'time_info': time.get_clock_info('time'), + 'monotonic_info': time.get_clock_info('monotonic'), + 'selector': self.loop._selector.__class__.__name__}) class SubprocessTestsMixin: |