Subject: bug#23002: 25.0.92; sluggish M-x

From: Leo Liu <[email-masked]>
Date: Sun, 25 Dec 2016 14:48:34 +0800

For the record.

A workaround is made in emacs 25.2 by introducing a dummy call to
(input-pending-p) in execute-extended-command--shorter.

A proper fix per Stefan Monnier:

  Re-reading the thread, the *right* solution is to fix while-no-input,
  and apparently the easiest way to do that would be to change
  while-no-input so that it calls an `internal--adjust-polling-frequency`
  function after binding throw-on-input (and maybe after un-binding it as
  well).
  
  On systems which don't use polling at all,
  internal--adjust-polling-frequency would just do nothing.
  
  The patch should be fairly simple, but I don't think anyone wrote
  such a patch yet, so I can't tell if it would be appropriate for emacs-25.
  
  Maybe for emacs-25 we can live with the workaround of adding a "dummy"
  call to (input-pending-p) in execute-extended-command--shorter.

See also https://lists.gnu.org/archive/html/emacs-devel/2016-12/msg00737.html