Subject: bug#61350: Eglot over Tramp freezes with large project

From: João Távora <[email-masked]>
Date: Tue, 7 Mar 2023 13:33:48 +0000

On Tue, Mar 7, 2023 at 1:04 PM Thomas Koch <[email-masked]> wrote:
>
> Thanks Michael! What is the advantage of this patch over just removing the JUST-THIS-ONE argument?
> In both cases tramp is triggering accept-process-output for processes it does not own.

Yes, I also ask myself that question.  Though here, Tramp
has "shared" ownership of them, sort of, so it's more
conservative when compared to the current mechanics.

Michael, your patch goes in the right direction but AFAIR
a single accept-process-output is not guaranteed to bring
into the process filter all the buffered data.

In "40.9.4 Accepting Output from Processes":

     [In accept-process-output, ] If PROCESS is
     non-‘nil’ then this function does not return until some output has
                                                 [^^^^^^^^^^^^^^^^^]
     been received from PROCESS or PROCESS has closed the connection.

Note "some", not "all".  So while less common, I think the hang
can still happen.

So maybe you meant:

   (while (accept-process-output p 0 nil t))

as suggested in that section?

João