> I guess you can see it that way too. So there are two ways to solve
> this:
>
> * only process-send-input in process filters makes sense
> * all but process-send-input in process filters makes sense
I assume you meant to write `process-send-string`, but I don't know what
you mean by the above (I understand neither bullets).
Yes, it's process-send-string. I talked earlier about how I think sit-for and
accept-process-output are two primitives that could just error when
called from within a process filter, because there's no possible reasonable
use for them, because they lead to recursive filters and recursive filters
are arguably "unreasonable". But process-send-string (without
output-acceptance) in a filter makes sense. That's the first bullet.
The other bullet is that a-p-output and sit-for and even recursive filters may
make sense (if you know what you are doing, i suppose), but the common
case of sending a follow up message to a process (as a direct consequence
of the output just received) should _not_ be handled with an in-filter p-s-string,
but with something else, like the run-at-timer idea. In that case we can keep
process-send-string's output acceptance.
> I'm more into of the first persuasion, but I think it shouldn't allow
> output to be accepted when called from within a process filter.
Indeed, as a general rule doing a "blocking wait", such as
`accept-process-output` from within async code (process filter, timer,
etc..) is generally undesirable.
I agree, but process-send-string is never blocking, is it? And anyway
if we go your 'spawn' or 'run-asap' way, we don't need to change
process-send-string's output-acceptance semantics at all.
João