diff options
author | Rafael H. Schloming <rhs@apache.org> | 2009-06-02 14:24:57 +0000 |
---|---|---|
committer | Rafael H. Schloming <rhs@apache.org> | 2009-06-02 14:24:57 +0000 |
commit | 7d4082b071338ab22293c633488b33fec120e604 (patch) | |
tree | de2783e03b5ecfd0a7a3d6ed56aa4127fabf9b9c /python/qpid/debug.py | |
parent | 2c65d1b1024b035d46fcfa9c67c84d54f0d68cc7 (diff) | |
download | qpid-python-7d4082b071338ab22293c633488b33fec120e604.tar.gz |
first commit of new messaging API and test harness
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@781044 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qpid/debug.py')
-rw-r--r-- | python/qpid/debug.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/python/qpid/debug.py b/python/qpid/debug.py new file mode 100644 index 0000000000..357340747f --- /dev/null +++ b/python/qpid/debug.py @@ -0,0 +1,45 @@ +import traceback, time, sys + +from threading import RLock + +def stackdump(*args): + print args + code = [] + for threadId, stack in sys._current_frames().items(): + code.append("\n# ThreadID: %s" % threadId) + for filename, lineno, name, line in traceback.extract_stack(stack): + code.append('File: "%s", line %d, in %s' % (filename, lineno, name)) + if line: + code.append(" %s" % (line.strip())) + print "\n".join(code) + +import signal +signal.signal(signal.SIGQUIT, stackdump) + +#out = open("/tmp/stacks.txt", "write") + +class LoudLock: + + def __init__(self): + self.lock = RLock() + + def acquire(self, blocking=1): + import threading + while not self.lock.acquire(blocking=0): + time.sleep(1) + print >> out, "TRYING" +# print self.lock._RLock__owner, threading._active +# stackdump() + traceback.print_stack(None, None, out) + print >> out, "TRYING" + print >> out, "ACQUIRED" + traceback.print_stack(None, None, out) + print >> out, "ACQUIRED" + return True + + def _is_owned(self): + return self.lock._is_owned() + + def release(self): + self.lock.release() + |