all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Jim Porter <jporterbugs@gmail.com>
Cc: 64866@debbugs.gnu.org, yikai@z1k.dev
Subject: bug#64866: 30.0.50; Emacsclient block for 2 seconds when error is raised from command
Date: Wed, 26 Jul 2023 21:48:39 +0300	[thread overview]
Message-ID: <837cqmo6ew.fsf@gnu.org> (raw)
In-Reply-To: <f691212b-8636-d4bd-23ad-f73d79195761@gmail.com> (message from Jim Porter on Wed, 26 Jul 2023 11:07:24 -0700)

> Date: Wed, 26 Jul 2023 11:07:24 -0700
> Cc: 64866@debbugs.gnu.org
> From: Jim Porter <jporterbugs@gmail.com>
> 
> On 7/25/2023 7:30 PM, Eli Zaretskii wrote:
> > I don't think your quite special use case is a reason good enough to
> > prevent users from seeing error messages.  An error message that
> > cannot be read is useless.
> 
> In this case, the user *can* see the error though: it's printed in the 
> terminal that they called `emacsclient -e '(error "oops")'` from.

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.

So I consider relying on this message as not a good idea, especially
for error messages that usually tell something about the problem.
Imagine the frustration of a user who sees the message flashing, but
cannot read it.

I think the delay that sometimes gets in the way is a small price to
pay for this important feature.

> Strangely, I tried running this and I still see a 2 second delay:
> 
>    emacsclient -e '(let ((minibuffer-message-timeout 0)) (error "oops"))'
> 
> I'm not sure why that doesn't work...

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.





  reply	other threads:[~2023-07-26 18:48 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-26  2:10 bug#64866: 30.0.50; Emacsclient block for 2 seconds when error is raised from command Yikai Zhao
2023-07-26  2:30 ` Eli Zaretskii
2023-07-26 15:50   ` Yikai Zhao
2023-07-26 15:58     ` Eli Zaretskii
2023-07-26 18:07   ` Jim Porter
2023-07-26 18:48     ` Eli Zaretskii [this message]
2023-07-26 19:48       ` Jim Porter
2023-07-27  4:48         ` Eli Zaretskii
2023-07-27  5:34           ` Jim Porter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=837cqmo6ew.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=64866@debbugs.gnu.org \
    --cc=jporterbugs@gmail.com \
    --cc=yikai@z1k.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.