From: Peter Sobot Date: Tue, 23 Oct 2012 18:33:17 +0000 (-0300) Subject: Added period check in PeriodicCallback X-Git-Tag: v3.0.0~233 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=041388cbca1eadcb8bc5ad01aeadc7a2cd6aa8eb;p=thirdparty%2Ftornado.git Added period check in PeriodicCallback If a user currently passes in 0ms (hopefully by accident) as the callback time for a periodic callback, Tornado consumes a huge amount of CPU and never calls the function. --- diff --git a/tornado/ioloop.py b/tornado/ioloop.py index 02046d3d1..dfbb462b3 100644 --- a/tornado/ioloop.py +++ b/tornado/ioloop.py @@ -679,6 +679,8 @@ class PeriodicCallback(object): """ def __init__(self, callback, callback_time, io_loop=None): self.callback = callback + if callback_time == 0: + raise ValueError("Periodic callback cannot have a period of 0ms") self.callback_time = callback_time self.io_loop = io_loop or IOLoop.instance() self._running = False