emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: call-process should not block process filters from running


From: Spencer Baugh
Subject: Re: call-process should not block process filters from running
Date: Wed, 28 Jun 2023 08:08:47 -0400
User-agent: Gnus/5.13 (Gnus v5.13)

Po Lu <luangruo@yahoo.com> writes:
> Spencer Baugh <sbaugh@janestreet.com> writes:
>
>> When Lisp code calls call-process, then while call-process is running,
>> all Lisp is blocked from running, including process filters and timers
>> created beforehand by other Lisp.  This call-process behavior is
>> harmful, but we can fix call-process to not behave this way.
>>
>> This call-process behavior is harmful:
>> Many packages rely on their process filters and timers being able to
>> run:
>> - Packages which communicate over the network (such as ERC)
>>   rely on being able to respond to heartbeats and prevent timeouts.
>> - Packages which respond to requests from other programs (such as EXWM)
>>   rely on being able to respond to those requests.
>> A simple (shell-command "sleep 60") will cause most such packages to
>> break or behave poorly.
>
> Have you considered that many programs may conversely rely on the fact
> that call-process can not run Lisp through selection converters or
> process filters?

Yes.  Those programs can continue to use call-process.  Others which
don't rely on this fact can be moved to a different interface which can
run Lisp, to avoid this downside.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]