In article <bf6fbab3-7ec7-4210-bc15-ad4e2f6a2...@r10g2000prf.googlegroups.com>, Victor Lin <borns...@gmail.com> wrote: > >I am developing a multi-threading application, I encounter a deadlock. >I use Visual C++ Express 2008 to trace the program. Once the deadlock >occurs, I just pause the program and trace. I found that when deadlock >occurs, there will be two threads called python from my C++ extension. >All of them use Queue in python code, so I guess the deadlock might >caused by Queue. But however, once the extension goes into python >code, I can't see nothing but asm code and binary from the VC++ >debugger. I would like to know are there any way to dump the call >stack of python code after I paused the program? And how can I know >what lock are there in threads caused the deadlock?
You are already hosed if you have two threads calling into Python, because you didn't properly acquire the GIL. I can't help beyond that; try using the mailing list http://mail.python.org/mailman/listinfo/capi-sig -- Aahz (a...@pythoncraft.com) <*> http://www.pythoncraft.com/ Weinberg's Second Law: If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. -- http://mail.python.org/mailman/listinfo/python-list