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

atagar at torproject.org atagar at torproject.org
Mon Jun 25 01:45:01 UTC 2012


commit 1098d9ad35dc0c04dcced034b1e564706c543c96
Author: Damian Johnson <atagar at 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()





More information about the tor-commits mailing list