bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#61350: Eglot over Tramp freezes with large project


From: Stefan Monnier
Subject: bug#61350: Eglot over Tramp freezes with large project
Date: Wed, 15 Mar 2023 17:55:27 -0400
User-agent: Gnus/5.13 (Gnus v5.13)

Sorry 'bout my previous email.

> diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
> index 47173b95bea..885b29f9471 100644
> --- a/lisp/net/tramp.el
> +++ b/lisp/net/tramp.el
> @@ -5800,6 +5800,11 @@ tramp-accept-process-output
>  This is needed in order to hide `last-coding-system-used', which is set
>  for process communication also.
>  If the user quits via `C-g', it is propagated up to 
> `tramp-file-name-handler'."
> +  (when-let (((process-get proc 'shared-socket))
> +          (v (process-get proc 'vector)))
> +    (dolist (p (delq proc (process-list)))
> +      (when (tramp-file-name-equal-p v (process-get p 'vector))
> +     (while (accept-process-output p 0 nil t)))))
>    (with-current-buffer (process-buffer proc)
>      (let ((inhibit-read-only t)
>         last-coding-system-used

Looks OK to me (tho this `dolist` in the middle of all those
`(tramp-accept-process-output .. 0)` busy loops is definitely not the
most efficient use of resources :-).


        Stefan


PS: An unrelated comment, is that `shared-socket` and `vector` should be
renamed to clarify that these are properties specific to Tramp processes
(i.e. use a `tramp-` prefix).






reply via email to

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