From: Eli Zaretskii <eliz@gnu.org>
To: Markus Triska <triska@metalevel.at>
Cc: 33747@debbugs.gnu.org
Subject: bug#33747: 26.1; process-send-string exceeds max-specpdl-size
Date: Fri, 14 Dec 2018 21:54:48 +0200 [thread overview]
Message-ID: <83mup7g9yv.fsf@gnu.org> (raw)
In-Reply-To: <874lbgeydc.fsf@metalevel.at> (message from Markus Triska on Fri, 14 Dec 2018 19:50:39 +0100)
> From: Markus Triska <triska@metalevel.at>
> Cc: 33747@debbugs.gnu.org
> Date: Fri, 14 Dec 2018 19:50:39 +0100
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> > AFAIK, process-send-string is a blocking function: it cannot return
> > before the entire string was sent.
>
> Yes indeed. However, the C function send_process internally calls
> wait_reading_process_output
That's so as not to wedge the entire session. Communications with
async subprocesses aren't supposed to stop everything in its tracks.
> and this may again invoke the filter!
In general, calling APIs that could take a long time from a process
filter is not a very good idea, btw. Remember that process filters
are run when Emacs is idle, so when you call an API that could take a
long time, you make Emacs less responsive. And then there's the
infinite recursion case that you hit.
> What I find surprising is that this call of
> wait_reading_process_output is not limited to the process whose
> output queue is full, i.e., the one for which process-send-string
> was actually invoked.
I don't see any reason why it should only wait for output from the
same process. Once again, this is Emacs's way to wait without
stopping everything else, so waiting for input from any source makes
perfect sense to me.
next prev parent reply other threads:[~2018-12-14 19:54 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-14 17:49 bug#33747: 26.1; process-send-string exceeds max-specpdl-size Markus Triska
2018-12-14 18:40 ` Eli Zaretskii
2018-12-14 18:50 ` Markus Triska
2018-12-14 19:54 ` Eli Zaretskii [this message]
2018-12-14 21:23 ` Markus Triska
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=83mup7g9yv.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=33747@debbugs.gnu.org \
--cc=triska@metalevel.at \
/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.