Problem with multithreading
Jeffrey Barish
jeff_barish at earthlink.net
Wed Jun 24 17:06:27 EDT 2009
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
More information about the Python-list
mailing list