[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] Add a callback to get exceptions from handler thread.
Update of /home/or/cvsroot/control/python
In directory moria:/tmp/cvs-serv30103
Modified Files:
TorCtl1.py
Log Message:
Add a callback to get exceptions from handler thread.
Index: TorCtl1.py
===================================================================
RCS file: /home/or/cvsroot/control/python/TorCtl1.py,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- TorCtl1.py 17 Nov 2005 17:39:56 -0000 1.17
+++ TorCtl1.py 17 Nov 2005 18:30:34 -0000 1.18
@@ -123,6 +123,7 @@
self._thread = None
self._closedEx = None
self._closed = 0
+ self._closeHandler = None
def debug(self, f):
"""DOCDOC"""
@@ -133,6 +134,14 @@
"""
self._handler = handler
+ def set_close_handler(self, handler):
+ """Call 'handler' when the Tor process has closed its connection or
+ given us an exception. If we close normally, no arguments are
+ provided; otherwise, it will be called with an exception as its
+ argument.
+ """
+ self._closeHandler = handler
+
def launch_thread(self, daemon=1):
"""Launch a background thread to handle messages from the Tor process."""
assert self._thread is None
@@ -159,7 +168,6 @@
"""
while 1:
ex = None
- print "."
try:
lines = _read_reply(self._s,self._debugFile)
except:
@@ -179,6 +187,8 @@
cb("EXCEPTION")
except Queue.Empty:
return
+ if self._closeHandler is not None:
+ self._closeHandler(ex)
assert lines
if lines[0][0][0] == "6":