Subject: Re: bug#64866: 30.0.50; Emacsclient block for 2 seconds when error is raised from command

From: Jim Porter <[email-masked]>
Date: Wed, 26 Jul 2023 12:48:38 -0700

On 7/26/2023 11:48 AM, Eli Zaretskii wrote:
> emacsclient writes the error message to its stderr, but it immediately
> exits.  When it exits and the Emacs frame is deleted, if it was a TTY
> frame which was displayed on that sane terminal, the message is
> deleted because Emacs clears the terminal when it deletes the frame.
> 
> I guess your experience is from GUI frames or something?  But even in
> that case it is not guaranteed that the error message will be seen,
> because emacsclient could be called with -nowait and in background.

I was testing this without any frames (well, except for the invisible 
daemon frame). I see what you mean, though. Since most uses of 
"emacsclient" involve creating/using an Emacs frame, it makes sense that 
the code would be oriented around that case.

> Why did you think it should?  According to its documentation it only
> affects minibuffer-message.  The 2-sec delay in the above case is done
> by an explicit call to sit-for with a hard-coded argument of 2 sec.
> See server-return-error.

Thanks for the pointer to this code. Looking at it, it doesn't seem easy 
to avoid this delay without causing the problems that you've mentioned.