GNU bug report logs - #25875
26.0.50; Hang logging out of MS-Windows

Previous Next

Package: emacs;

Reported by: Richard Copley <rcopley <at> gmail.com>

Date: Sat, 25 Feb 2017 19:37:01 UTC

Severity: normal

Found in version 26.0.50

Done: Ken Brown <kbrown <at> cornell.edu>

Bug is archived. No further changes may be made.

Full log


Message #101 received at 25875 <at> debbugs.gnu.org (full text, mbox):

From: Richard Copley <rcopley <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 25875 <at> debbugs.gnu.org, Ken Brown <kbrown <at> cornell.edu>
Subject: Re: bug#25875: 26.0.50; Hang logging out of MS-Windows
Date: Mon, 27 Feb 2017 21:09:52 +0000
On 27 February 2017 at 20:58, Eli Zaretskii <eliz <at> gnu.org> wrote:
>> From: Richard Copley <rcopley <at> gmail.com>
>> Date: Mon, 27 Feb 2017 20:52:16 +0000
>> Cc: Ken Brown <kbrown <at> cornell.edu>, 25875 <at> debbugs.gnu.org
>>
>> Eli, you said:
>>
>> > As I understand it, this happens because when the input thread gets
>> > the WM_ENDSESSION message, it posts it to the main thread and goes on
>> > to sleep for 1000 sec, to avoid ending the Emacs process before it
>> > finishes orderly shutdown.  But if the main thread happens to be
>> > inside redisplay, it could invoke one of the function that send
>> > messages to the input thread via SendMessage, which waits for the
>> > input thread to respond.  So we do have a kind of deadlock.
>>
>> 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.




This bug report was last modified 8 years and 85 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.