emacs-devel
[Top][All Lists]
Advanced

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

Re: [gmane.emacs.devel] Tramp with global-auto-revert-mode.


From: Kai Grossjohann
Subject: Re: [gmane.emacs.devel] Tramp with global-auto-revert-mode.
Date: Sat, 29 May 2004 12:17:21 +0200
User-agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.3.50 (gnu/linux)

address@hidden (Kim F. Storm) writes:

> Kai Grossjohann <address@hidden> writes:
>
>> address@hidden (Kim F. Storm) writes:
>> 
>> > I think we have a pretty good understanding of what the problems are
>> > in this case: GC problems have been fixed, so it remains to fix that
>> > tramp is not reentrant.
>> 
>> I would like to discuss the solution with Michael, but I can think of
>> the following solutions:
>> 
>> (a) Make Tramp barf on reentrant calls.
>
> That would probably break some code which does eg. file-exists-p
> in a timer hook or some such.  So it is not an option.

I agree with Stefan: that code breaks now anyway.

>> (b) Make Tramp wait on reentrant calls (by implementing a queue or
>>     somesuch).
>
> I prefer this (because there are problems with the alternatives).

Michael wants to work on this, I think.  I'm not sure whether there
would be problems with this idea: it would tend to cause timers to
take longer to process (because they have to wait on the "main" Emacs
thread), and the "main" Emacs thread might have to wait longer on the
timers.  This effect could be benign or bad, I don't know.

>> (c) Implement concurrency for reentrant calls (by opening more than
>>     one connection to the remote end).
>
> How do you solve the problem with having to enter passwords or other
> stuff when invoked from a hook ... 

The idea is to cache them.  Multiple connections to the same host are
useful anyway, e.g. for async shell commands.  Also, Tramp could then
reopen the connection without pestering the user.

> and would you start a new thread for every reentant call, that
> sounds like a lot of processes?

The idea is to keep the connections open (at least for a while), and
to reuse them.

> Also, tramp is slow at opening a connection (but maybe it can skip
> some initial checks when it already has another connection to the
> same host?).

Remembering the results of the initial checks is also on the todo
list.

Kai




reply via email to

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