From: Ben Darnell Date: Wed, 3 Aug 2011 06:47:55 +0000 (-0700) Subject: If a PeriodicCallback runs longer than its period, skip the missed callbacks X-Git-Tag: v2.1.0~60 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7aec8fc9b3e969eb7a345aefd689501035d967dd;p=thirdparty%2Ftornado.git If a PeriodicCallback runs longer than its period, skip the missed callbacks instead of trying to run all the missed callbacks to catch up. --- diff --git a/tornado/ioloop.py b/tornado/ioloop.py index 7e7da905d..7d31480a0 100644 --- a/tornado/ioloop.py +++ b/tornado/ioloop.py @@ -461,7 +461,9 @@ class PeriodicCallback(object): def _schedule_next(self): if self._running: - self._next_timeout += self.callback_time / 1000.0 + current_time = time.time() + while self._next_timeout < current_time: + self._next_timeout += self.callback_time / 1000.0 self.io_loop.add_timeout(self._next_timeout, self._run)