From 041388cbca1eadcb8bc5ad01aeadc7a2cd6aa8eb Mon Sep 17 00:00:00 2001 From: Peter Sobot Date: Tue, 23 Oct 2012 15:33:17 -0300 Subject: [PATCH] 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. --- tornado/ioloop.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tornado/ioloop.py b/tornado/ioloop.py index 02046d3d..dfbb462b 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