Subject: Re: bug#19945: emacsclient confused by active minibuffer

From: Eli Zaretskii <[email-masked]>
Date: Sun, 06 Dec 2020 15:24:56 +0200

> From: Lars Ingebrigtsen <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Sun, 06 Dec 2020 13:55:48 +0100
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > It isn't emacsclient that's doing this.  Remember: emacsclient just
> > sends a command to Emacs via a socket; processing of that command and
> > displaying the results on the frame's display is done by the server,
> > i.e. by Emacs.
> >
> > So it's Emacs that's waiting, probably inside sit_for.
> 
> Well, Emacs is in a recursive minibuffer (since there's an `M-x' in
> action), and the server code is ending it when emacsclient talks to it.
> 
> But waits a second first.
> 
> My question was whether this wait is on purpose (to notify the user that
> we're ending the M-x), or whether it's a bug.

It's neither, AFAIU.  It's just that sit_for is not interrupted by the
client attempting to connect (like it would by keyboard input, for
example).  If I'm right, then TRT, IMO, would be to arrange for it to
be interrupted in this case.

(The wait in this case is to provide echo for the key sequence when
the user stops typing for a while, but cease waiting immediately when
new input arrives.)