Re: MsgWaitForMultipleObjects and Timer
"kardath" <kardath@free.fr> wrote in message
news:1147777426.049586.53800@j73g2000cwa.googlegroups.com
I want to know if MsgWaitForMultipleObjects do a deadlock with a
timeout of INFINITE?
I've the following code :
do{
retour = MsgWaitForMultipleObjects(1, ahThread,
FALSE,
INFINITE,
QS_ALLEVENTS);
Always remove all messages from the message queue right before calling
MsgWaitForMultipleObjects. That is, run a PeekMessage-based message loop
until PeekMessage returns FALSE. MsgWaitForMultipleObjects only reacts
to _new_ messages - that is, messages that appeared in the queue since
the last GetMessage or PeekMessage call.
if(retour != WAIT_OBJECT_0) bEndThread = 1;
}while(bEndThread);
Now that I look closer, this code does not make any sense. First, you
are not actually pumping messages, so why are you using
MsgWaitForMultipleObjects? Second, once bEndThread becomes 1 on the
first pass, it always remains 1. Even when the thread terminates you
continue spinning in an infinite loop.
--
With best wishes,
Igor Tandetnik
With sufficient thrust, pigs fly just fine. However, this is not
necessarily a good idea. It is hard to be sure where they are going to
land, and it could be dangerous sitting under them as they fly
overhead. -- RFC 1925