On Fri, Dec 16, 2022 at 2:36 PM Stefan Monnier <
monnier@iro.umontreal.ca> wrote:
> > Avoid recursive process filters in lisp/jsonrpc.el (bug#60088)
>
> BTW, this has bitten us in various other cases, we should fix it once
> and for all in the C code by marking the process as "busy" while we're
> running the filters so we never run filters recursively.
> [ If we ever bump into a case where recursive filters are needed, we
> can then add some function to remove the "busy" mark.
> Calling (accept-process-output PROC) should naturally mark PROC as
> not-busy. ]
I thought about that too, but I don't know what other implications
it might have. If it's somehow feasible, isn't it easier to just change
process-send-input to _not_ accept output? That's the
only output-accepting primitive that makes sense to call from
within a process filter (and that's what happened here). I can't
see how sit-for is useful from within a process-filter and neither
accept-process-output. Almost certainly a bug, right? So why
can't we make it so that they just error when called under those
circumstances?
João