GNU bug report logs -
#10669
24.0.93; Emacs daemon high CPU load
Previous Next
Reported by: Michael Welsh Duggan <md5i <at> md5i.com>
Date: Mon, 30 Jan 2012 22:54:01 UTC
Severity: normal
Merged with 5535
Found in version 24.0.93
Done: Stefan Kangas <stefan <at> marxist.se>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Okay. Here's what the infinite loop actually is:
The C function 'command_loop' calls 'top_level_1', which eventually
evals 'top-level', which is 'normal-top-level'. 'normal-top-level'
notes that 'command-line-processed' is t, calls (message "Back to top
level."), and then returns.
Back to 'command_loop, which then calls 'command_loop_2', which calls
command_loop_1', which calls 'read_key_sequence', which calls
'read_char'.
'read_char' eventually calls 'kbd_buffer_get_event' at keyboard.c:2797.
This ends up calling getchar(), since we are running as a daemon
(keyboard.c:3796). This getchar() returns -1. 'read_char' returns this
-1.
'read_key_sequence' takes this -1, and sets its return value to 0
(keyboard.c:9373).
'command_loop_1' takes this 0, and returns nil (keyboard.c:1463).
'command_loop_2' returns nil on nil.
'command_loop' then continues in its loop, calling 'top_level_1' again,
followed by 'command_loop_2'.
--
Michael Welsh Duggan
(md5i <at> md5i.com)
This bug report was last modified 4 years and 286 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.