[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#10669: More debugging

From: Michael Welsh Duggan
Subject: bug#10669: More debugging
Date: Sun, 05 Feb 2012 03:49:43 -0500
User-agent: Gnus/5.11002 (No Gnus v0.20) Emacs/24.0.93 (gnu/linux)

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' 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

'read_key_sequence' takes this -1, and sets its return value to 0

'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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]