From: Michael Albinus Date: Thu, 5 Aug 2010 13:51:21 +0000 (+0200) Subject: * tramp.texi (External packages): File attributes cache flushing X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~438^2~49^2~64 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bbb6ffa177707b5915ddf07e3199fbefafca27e4;p=emacs.git * tramp.texi (External packages): File attributes cache flushing for asynchronous processes. --- diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 81b89b98a2e..2d67aec0eab 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,3 +1,8 @@ +2010-08-05 Michael Albinus + + * tramp.texi (External packages): File attributes cache flushing + for asynchronous processes. + 2010-08-01 Alan Mackenzie Enhance the manual for the latest Java Mode. diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 41f29de09d2..b9c83be457e 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -3471,7 +3471,7 @@ it has seen so far. This is a performance degradation, because the lost file attributes must be recomputed, when needed again. In cases the caller of -@code{process-file} knows that there are file attribute changes, it +@code{process-file} knows that there are no file attribute changes, it shall let-bind the variable @code{process-file-side-effects} to @code{nil}. @value{tramp} wouldn't flush the file attributes cache then. @@ -3479,6 +3479,25 @@ shall let-bind the variable @code{process-file-side-effects} to (let (process-file-side-effects) ...) @end lisp + +For asynchronous processes, @value{tramp} flushes the file attributes +cache via a process sentinel. If the caller of +@code{start-file-process} knows that there are no file attribute +changes, it shall set the process sentinel to @code{nil}. In case the +caller defines an own process sentinel, @value{tramp}'s process +sentinel is overwritten. The caller can still flush the file +attributes cache in its process sentinel with this code: + +@lisp +(unless (memq (process-status proc) '(run open)) + (dired-uncache remote-directory)) +@end lisp + +@code{remote-directory} shall be the root directory, where file +attribute changes can happen during the process lifetime. +@value{tramp} traverses all subdirectories, starting at this +directory. Often, it is sufficient to use @code{default-directory} of +the process buffer as root directory. @end ifset