all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: "Herman Géza" <geza.herman@gmail.com>
Cc: 44007@debbugs.gnu.org
Subject: bug#44007: 26.3; Strange shell mode performance
Date: Mon, 06 Nov 2023 18:52:50 +0200	[thread overview]
Message-ID: <83cywm3jtp.fsf@gnu.org> (raw)
In-Reply-To: <87v8aeyl9v.fsf@gmail.com> (message from Herman, Géza on Mon, 06 Nov 2023 16:00:00 +0100)

> From: Herman, Géza <geza.herman@gmail.com>
> Cc: Herman Géza <geza.herman@gmail.com>,
>  44007@debbugs.gnu.org
> Date: Mon, 06 Nov 2023 16:00:00 +0100
> 
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > I believe reading again immediately could make Emacs unresponsive
> > for prolonged periods of time.  We are talking about reading
> > sub-process output asynchronously, which means we must not read in
> > a tight loop, because that would have the same effect as calling a
> > subprocess synchronously and waiting for it to finish.
> >
> > Even in this particular scenario, the user should be able to
> > switch to another buffer and issue commands, while Emacs is
> > reading from the shell or some program invoked from the shell.
> 
> I thought that the fd is nonblocking here.

That doesn't matter here.  The problem is not with blocking in 'read',
the problem is with calling one 'read' after another without letting
Emacs process the foreground input events.

> But even if it's not, how does Emacs determine nbyte parameter?

It's a parameter, which is exposed to Lisp, so can be controlled, but
otherwise is not based on anything.

> Because I suppose it should be at most as large as the available
> data in the fd.

Emacs doesn't know how much is available, it only knows that some
positive amount is available.

> If not, then emacs_intr_read already has the chance of blocking
> anyway without the loop.

Again, blocking is not the issue, see above.





  reply	other threads:[~2023-11-06 16:52 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-15  9:53 bug#44007: 26.3; Strange shell mode performance Herman, Géza
2020-10-15 14:10 ` Eli Zaretskii
2020-10-15 14:34   ` Herman, Geza
2020-10-16  8:25     ` Andreas Röhler
2022-01-28 15:26     ` Lars Ingebrigtsen
2022-01-28 22:33       ` Herman, Géza
2022-01-29  6:52         ` Eli Zaretskii
2022-01-29 14:38         ` Lars Ingebrigtsen
2022-01-29 16:10           ` Herman, Géza
2023-11-05 16:46     ` Herman, Géza
2023-11-06 12:08       ` Eli Zaretskii
2023-11-06 12:28         ` Herman, Géza
2023-11-06 13:22           ` Eli Zaretskii
2023-11-06 13:37             ` Herman, Géza
2023-11-06 14:40               ` Eli Zaretskii
2023-11-06 15:00                 ` Herman, Géza
2023-11-06 16:52                   ` Eli Zaretskii [this message]
2023-11-06 17:25                     ` Herman, Géza
2023-11-06 22:47               ` Dmitry Gutov
2020-10-16 10:44   ` Herman, Géza
2020-10-16 10:55     ` Eli Zaretskii
2020-10-16 12:23       ` Herman, Géza
2020-10-17 12:48   ` Herman, Géza

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=83cywm3jtp.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=44007@debbugs.gnu.org \
    --cc=geza.herman@gmail.com \
    /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.