On Fri, Dec 16, 2022 at 2:36 PM Stefan Monnier 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