GNU bug report logs -
#12832
24.3.50; Emacs lockup when idle
Previous Next
Reported by: Andy Moreton <andrewjmoreton <at> gmail.com>
Date: Thu, 8 Nov 2012 12:58:02 UTC
Severity: normal
Found in version 24.3.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #71 received at 12832 <at> debbugs.gnu.org (full text, mbox):
On 14/11/2012 12:44, Andy Moreton wrote:
> On 13/11/2012 17:04, Eli Zaretskii wrote:
>> Can you please try the patch below and see if it prevents the
>> lock-ups?
>>
>> === modified file 'src/w32proc.c'
>> --- src/w32proc.c 2012-11-05 03:18:32 +0000
>> +++ src/w32proc.c 2012-11-13 16:59:53 +0000
>> @@ -431,13 +431,24 @@ timer_loop (LPVOID arg)
>> /* Simulate a signal delivered to the thread which installed
>> the timer, by suspending that thread while the handler
>> runs. */
>> - DWORD result = SuspendThread (itimer->caller_thread);
>> + DWORD result;
>> +
>> + if (dwMainThreadId)
>> + enter_crit ();
>> + result = SuspendThread (itimer->caller_thread);
>>
>> if (result == (DWORD)-1)
>> - return 2;
>> + {
>> + if (dwMainThreadId)
>> + leave_crit ();
>> + return 2;
>> + }
>>
>> handler (sig);
>> ResumeThread (itimer->caller_thread);
>> +
>> + if (dwMainThreadId)
>> + leave_crit ();
>> }
>>
>> /* Update expiration time and loop. */
>>
>
> I applied this to emacs-24 branch (r110866) this morning. So far I've not seen
> a lockup, but I'll to run it for a day or two to be sure.
After longer uptime, it seems this patch is not successful. I haven't had a
complete lockup, but I have seen a couple of glitches where it froze but then
recovered a short while later.
The unfreeze may have been due to capturing a stack trace with Process
Explorer (I have upgraded to the latest version which is less buggy).
The patched emacs-24 does seem to leak handles: at the moment Process Explorer
report that emacs has 50805 handles in all, most of which are thread handles.
The number of handles seems to increase at a rate of 2 to 4 per second.
AndyM
This bug report was last modified 12 years and 275 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.