Issue #20505: add debug info
authorVictor Stinner <victor.stinner@gmail.com>
Fri, 7 Feb 2014 16:53:13 +0000 (17:53 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Fri, 7 Feb 2014 16:53:13 +0000 (17:53 +0100)
Lib/asyncio/base_events.py

index cafd10a06e18fbcb929fa77f963e4ba632ee86a0..b9de8c719a8d98e4454483ebb9e419948b171f23 100644 (file)
@@ -634,7 +634,17 @@ 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 timeout and not event_list and dt < timeout:
+                print("%s.select(%.3f ms) took %.3f ms (granularity=%.3f ms, resolution=%.3f ms)"
+                      % (self._selector.__class__.__name__,
+                         timeout * 1e3,
+                         dt * 1e3,
+                         self._granularity * 1e3,
+                         self._selector.resolution * 1e3),
+                      file=sys.__stderr__)
         self._process_events(event_list)
 
         # Handle 'later' callbacks that are ready.