Problem with multithreading

J

Jeffrey Barish

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.
 
L

Lie Ryan

Jeffrey said:
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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top