[stem/master] Python 2.5 doesn't have is_alive() method for Threads

commit 1098d9ad35dc0c04dcced034b1e564706c543c96 Author: Damian Johnson <atagar@torproject.org> Date: Thu Jun 21 09:31:50 2012 -0700 Python 2.5 doesn't have is_alive() method for Threads Though it's not documented [1], the Thread class' isAlive() method was first aliased to is_alive() in python 2.6. Also filed a ticket for the documentation bug [2]. [1] http://docs.python.org/library/threading.html#threading.Thread.is_alive [2] http://bugs.python.org/issue15126 --- stem/control.py | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/stem/control.py b/stem/control.py index 47b08c9..4e6e4f2 100644 --- a/stem/control.py +++ b/stem/control.py @@ -54,6 +54,12 @@ State = stem.util.enum.Enum("INIT", "RESET", "CLOSED") UNDEFINED = "<Undefined_ >" +# TODO: The Thread's isAlive() method was changed to the more conventional +# is_alive() in python 2.6 and above. We should use that when dropping python +# 2.5 compatability... +# http://docs.python.org/library/threading.html#threading.Thread.is_alive +# http://bugs.python.org/issue15126 + class BaseController: """ Controller for the tor process. This is a minimal base class for other @@ -282,7 +288,7 @@ class BaseController: # joins on our threads if it's safe to do so for t in (self._reader_thread, self._event_thread): - if t and t.is_alive() and threading.current_thread() != t: + if t and t.isAlive() and threading.current_thread() != t: t.join() self._notify_status_listeners(State.CLOSED, False) @@ -338,12 +344,12 @@ class BaseController: # single thread, which would cause an unexpeceted exception. Best be safe. with self._socket._get_send_lock(): - if not self._reader_thread or not self._reader_thread.is_alive(): + if not self._reader_thread or not self._reader_thread.isAlive(): self._reader_thread = threading.Thread(target = self._reader_loop, name = "Tor Listener") self._reader_thread.setDaemon(True) self._reader_thread.start() - if not self._event_thread or not self._event_thread.is_alive(): + if not self._event_thread or not self._event_thread.isAlive(): self._event_thread = threading.Thread(target = self._event_loop, name = "Event Notifier") self._event_thread.setDaemon(True) self._event_thread.start()
participants (1)
-
atagar@torproject.org