Problem with multithreading
lie.1296 at gmail.com
Wed Jun 24 23:31:32 CEST 2009
Jeffrey Barish wrote:
> 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
> print "about to 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.
The key in writing a test code is to reduce the buggy code until you
can't reduce anymore without losing the bug. It is sometimes difficult
to write a buggy test code...
try writing the test code again with that technique, and post it
More information about the Python-list