Subject: bug#12450: Remove configure's --without-sync-input option.

From: Stefan Monnier <[email-masked]>
Date: Sun, 16 Sep 2012 10:58:41 -0400

> Could you please describe how the SYNC_INPUT code is supposed to work
> in the following situations:
>   . keyboard input on a TTY that comes while Lisp is running
>   . an X event that exposes an Emacs frame in a GUI session, coming
>     while Lisp is running

- The keyboard input or the X event causes a signal to be delivered.
- The signal handler sets pending_signal and returns.
- The Elisp interpreter ends up calling QUIT sooon afterwards.
- QUIT processes the pending signals which will read the (keyboard/X11)
  input and turn it in an event in the event queue (so input-pending-p
  will know something has arrived), it may also do some more processing
  such as redraw the window if the GUI needs it.  Currently it also
  handles things like mouse-face highlighting.
- The Elisp interpreter then keeps running the code it was running, as
  if nothing happened.

So SYNC_INPUT basically delays the processing of incoming signals from
"run it at any time" to "run it at the next safe point" where a safe
point is defined as "a point where we call QUIT".  "QUIT" can also be
understood as a sibling of "yield".

Does that answer your question?

        Stefan