45 lines
1.7 KiB
Diff
45 lines
1.7 KiB
Diff
diff -up system-config-printer-1.2.0/asyncipp.py.asyncipp-traceback system-config-printer-1.2.0/asyncipp.py
|
|
--- system-config-printer-1.2.0/asyncipp.py.asyncipp-traceback 2010-03-26 10:26:00.420734896 +0000
|
|
+++ system-config-printer-1.2.0/asyncipp.py 2010-03-26 10:26:03.187725661 +0000
|
|
@@ -59,6 +59,7 @@ class _IPPConnectionThread(threading.Thr
|
|
self._auth_handler = auth_handler
|
|
self._auth_queue = Queue.Queue (1)
|
|
self.user = None
|
|
+ self._destroyed = False
|
|
debugprint ("+%s" % self)
|
|
|
|
def __del__ (self):
|
|
@@ -157,6 +158,7 @@ class _IPPConnectionThread(threading.Thr
|
|
self._queue.task_done ()
|
|
|
|
debugprint ("Thread exiting")
|
|
+ self._destroyed = True
|
|
del self._conn # already destroyed
|
|
del self._reply_handler
|
|
del self._error_handler
|
|
@@ -189,18 +191,20 @@ class _IPPConnectionThread(threading.Thr
|
|
|
|
def _reply (self, result):
|
|
def send_reply (result):
|
|
- self._reply_handler (self._conn, result)
|
|
+ if not self._destroyed and self._reply_handler:
|
|
+ self._reply_handler (self._conn, result)
|
|
return False
|
|
|
|
- if self._reply_handler:
|
|
+ if not self._destroyed and self._reply_handler:
|
|
gobject.idle_add (send_reply, result)
|
|
|
|
def _error (self, exc):
|
|
def send_error (exc):
|
|
- self._error_handler (self._conn, exc)
|
|
+ if not self._destroyed and self._error_handler:
|
|
+ self._error_handler (self._conn, exc)
|
|
return False
|
|
|
|
- if self._error_handler:
|
|
+ if not self._destroyed and self._error_handler:
|
|
debugprint ("Add %s to idle" % self._error_handler)
|
|
gobject.idle_add (send_error, exc)
|
|
|