Subject: bug#29735: 27.0.50; It must be possible to suspend all timers

From: Michael Albinus <[email-masked]>
Date: Sun, 17 Dec 2017 19:43:48 +0100

Eli Zaretskii <[email-masked]> writes:

Hi Eli,

>> When another asynchronous process is needed, for example due to the call
>> of `start-file-process', Tramp starts that asynchronous process calling
>> ssh (for example). After that, initialization happens, including
>> password handling, setting the remote shell, cd'ing to the working
>> directory, calling the indicated command, and so on. During that time,
>> Tramp is instructed to use another process buffer. See for example
>> `tramp-sh-handle-start-file-process', where you find the lines
>> 
>>       ;; Set the new process properties.
>>       (tramp-set-connection-property v "process-name" name)
>>       (tramp-set-connection-property v "process-buffer" buffer)
>
> Not sure I follow: are you changing process-buffer of a process, or do
> you have more than one process sharing the same process-buffer?  Or
> something else?

Several processes, every one owns a separate process buffer. But the
basic Tramp operations don't know which process is involved, therefore
the actual process is kept via the process connections "process-name"
and "process-buffer".

> I guess I don't know how to interpret "Tramp is instructed to use
> another process buffer".  Who in this context is "Tramp", if there are
> multiple async processes involved, each one with its own buffer?

"Tramp" means the low level functions which communicate with
processes. Something like `tramp-send-command', `tramp-send-string' or
`tramp-maybe-open-connection'.

Best regards, Michael.