summaryrefslogtreecommitdiff
path: root/python/qpid/debug.py
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2009-06-02 14:24:57 +0000
committerRafael H. Schloming <rhs@apache.org>2009-06-02 14:24:57 +0000
commit7d4082b071338ab22293c633488b33fec120e604 (patch)
treede2783e03b5ecfd0a7a3d6ed56aa4127fabf9b9c /python/qpid/debug.py
parent2c65d1b1024b035d46fcfa9c67c84d54f0d68cc7 (diff)
downloadqpid-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.py45
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()
+