This is a problem of intermittents hangings, when moving the
mouse or closing a window (not obvious). I finally realized
that the traces in the hanging of Eudora 4 looked very similar,
but Eudora 4 hangs reliably ;-)
I have found this Eudora crash an infinite loop generated by a
mouse move message, cooked to generate a WM_NCMOUSEMOVE,
then this last message is obtained repeatedly from the server
without being ever removed.
It does not seem right to peek a cooked message off the server,
not find anything useful to do with it, and just ignore it and
asking the server again.
The following patch removes the problem, and *seems*
to cure the intermittent hangings of other apps.
Gerard
--- message.c.orig Wed Jun 27 22:14:07 2001
+++ message.c Wed Jun 27 22:13:57 2001
@@ -790,7 +790,11 @@
if (qmsg.kind == RAW_HW_MESSAGE || qmsg.kind == COOKED_HW_MESSAGE)
{
if (!process_hardware_message( &qmsg, hwnd, first, last,
flags & PM_REMOVE ))
+ {
+ if (qmsg.kind == COOKED_HW_MESSAGE)
+ if (!(flags & PM_REMOVE)) QUEUE_FindMsg( hwnd,
first, last, TRUE, &qmsg );
goto retry;
+ }
}
else
{