Problem with multithreading

Lie Ryan lie.1296 at gmail.com
Wed Jun 24 17:31:32 EDT 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
> 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.

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 mailing list