I have a program that uses multithreading to monitor two loops. When something happens in loop1, it sends a message to loop2 to have it execute a command. loop2 might have to return a result. If it does, it puts the result in a queue. loop1, meanwhile, would have blocked waiting for something to appear in the queue. The program works for a while, but eventually freezes. I know that freezing is a sign of deadlock. However, I put in print statements to localize the problem and discovered something weird. The freeze always occurs at a point in the code with the following statements:
print "about to try" try: print "in try" <do something> I get "about to try", but not "in try". Is this observation consistent with the deadlock theory? If not, what could be making the program freeze at the try statement? I wrote a test program using the same techniques to illustrate the problem, but the test program works perfectly. I could post it, though, if it would help to understand what I am doing -- and what might be wrong in the real program. -- Jeffrey Barish -- http://mail.python.org/mailman/listinfo/python-list