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 {