* tramp.texi (External packages): File attributes cache flushing
authorMichael Albinus <michael.albinus@gmx.de>
Thu, 5 Aug 2010 13:51:21 +0000 (15:51 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Thu, 5 Aug 2010 13:51:21 +0000 (15:51 +0200)
for asynchronous processes.

doc/misc/ChangeLog
doc/misc/tramp.texi

index 81b89b9..2d67aec 100644 (file)
@@ -1,3 +1,8 @@
+2010-08-05  Michael Albinus  <michael.albinus@gmx.de>
+
+       * tramp.texi (External packages): File attributes cache flushing
+       for asynchronous processes.
+
 2010-08-01  Alan Mackenzie  <acm@muc.de>
 
        Enhance the manual for the latest Java Mode.
index 41f29de..b9c83be 100644 (file)
@@ -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