summaryrefslogtreecommitdiff
path: root/lib/git/async/thread.py
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2010-06-09 10:34:12 +0200
committerSebastian Thiel <byronimo@gmail.com>2010-06-09 10:34:12 +0200
commit15941ca090a2c3c987324fc911bbc6f89e941c47 (patch)
tree3c508eb2e8be484e8685cddaa1de72826fbf9302 /lib/git/async/thread.py
parentf78d4a28f307a9d7943a06be9f919304c25ac2d9 (diff)
downloadgitpython-15941ca090a2c3c987324fc911bbc6f89e941c47.tar.gz
queue: fixed critical bug in the notify method, as it was not at all thread-safe, causing locks to be released multiple times. Now it runs very fast, and very stable apparently.
Now its about putting previous features back in, and studying their results, before more complex task graphs can be examined
Diffstat (limited to 'lib/git/async/thread.py')
-rw-r--r--lib/git/async/thread.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/git/async/thread.py b/lib/git/async/thread.py
index 556b7e92..cd964f1c 100644
--- a/lib/git/async/thread.py
+++ b/lib/git/async/thread.py
@@ -5,6 +5,8 @@ import threading
import inspect
import Queue
+import sys
+
#{ Decorators
def do_terminate_threads(whitelist=list()):
@@ -160,14 +162,15 @@ class WorkerThread(TerminatableThread):
rval = routine(arg)
else:
# ignore unknown items
- print "%s: task %s was not understood - terminating" % (self.getName(), str(tasktuple))
+ print >> sys.stderr, "%s: task %s was not understood - terminating" % (self.getName(), str(tasktuple))
break
# END make routine call
except StopProcessing:
+ print self.name, "stops processing"
break
except Exception,e:
- print "%s: Task %s raised unhandled exception: %s - this really shouldn't happen !" % (self.getName(), str(tasktuple), str(e))
- break # abort ...
+ print >> sys.stderr, "%s: Task %s raised unhandled exception: %s - this really shouldn't happen !" % (self.getName(), str(tasktuple), str(e))
+ continue # just continue
# END routine exception handling
# END endless loop