Subject: bug#25875: 26.0.50; Hang logging out of MS-Windows

From: Eli Zaretskii <[email-masked]>
Date: Tue, 28 Feb 2017 05:30:50 +0200

> From: Richard Copley <[email-masked]>
> Date: Mon, 27 Feb 2017 21:09:52 +0000
> Cc: Ken Brown <[email-masked]>, [email-masked]
> 
> >> Posting a message and then sleeping while it's processed is odd,
> >> isn't it? If the input thread /sent/ its message to the main thread,
> >> then while waiting for SendMessage to return, the input thread would
> >> automatically continue to process sent messages
> >
> > No, it's the main thread that calls SendMessage, to tell the input
> > thread to draw something.  And since the input thread is inside
> > 'sleep', the SendMessage call never returns, and the main thread never
> > gets around to checking its input queue, where there's an event bound
> > to kill-emacs, waiting to be processed.
> 
> Please Eli, read what I said again. It might not be right, but you
> misunderstood it.
> I know the input thread isn't calling SendMessage. It's callling PostMessage and
> then sleep. I'm suggesting that the input thread should call SendMessage.

The input thread doesn't call PostMessage.  It calls post_message,
which is a private messaging mechanism between the input thread and
the main thread, implemented in w32xfns.c and based on a critical
section.  IOW, we don't use the Windows messaging in that case.  So I
don't see how calling SendMessage will help in this situation.  Am I
missing something?