From ffa8f152ab9ec479ed2721581a8f088983a9ba8b Mon Sep 17 00:00:00 2001 From: Ben Darnell Date: Mon, 2 Jan 2012 19:17:57 -0800 Subject: [PATCH] Add comment about (non-)thread-safety of IOLoop.add_timeout. --- tornado/ioloop.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tornado/ioloop.py b/tornado/ioloop.py index 4ed638e7..edd2fec2 100644 --- a/tornado/ioloop.py +++ b/tornado/ioloop.py @@ -352,6 +352,10 @@ class IOLoop(object): ``deadline`` may be a number denoting a unix timestamp (as returned by ``time.time()`` or a ``datetime.timedelta`` object for a deadline relative to the current time. + + Note that it is not safe to call `add_timeout` from other threads. + Instead, you must use `add_callback` to transfer control to the + IOLoop's thread, and then call `add_timeout` from there. """ timeout = _Timeout(deadline, stack_context.wrap(callback)) heapq.heappush(self._timeouts, timeout)