diff lisp/net/tramp.el @ 109659:6387fbfcb44d

* net/tramp.el (tramp-handle-start-file-process ): Set connection property "vec". (tramp-process-sentinel): Use it for flushing the cache. We cannot do it via the process buffer, the buffer could be deleted already when running the sentinel.
author Michael Albinus <michael.albinus@gmx.de>
date Fri, 06 Aug 2010 16:34:23 +0200
parents 1d90000011f0
children 9d0afaf75d12
line wrap: on
line diff
--- a/lisp/net/tramp.el	Fri Aug 06 15:53:59 2010 +0200
+++ b/lisp/net/tramp.el	Fri Aug 06 16:34:23 2010 +0200
@@ -4506,10 +4506,10 @@
 (defun tramp-process-sentinel (proc event)
   "Flush file caches."
   (unless (memq (process-status proc) '(run open))
-    (with-current-buffer (process-buffer proc)
-      (with-parsed-tramp-file-name default-directory nil
-	(tramp-message v 5 "Sentinel called: `%s' `%s'" proc event)
-        (tramp-flush-directory-property v "")))))
+    (let ((vec (tramp-get-connection-property proc "vector" nil)))
+      (when vec
+	(tramp-message vec 5 "Sentinel called: `%s' `%s'" proc event)
+        (tramp-flush-directory-property vec "")))))
 
 ;; We use BUFFER also as connection buffer during setup. Because of
 ;; this, its original contents must be saved, and restored once
@@ -4556,6 +4556,7 @@
 	       v 'file-error "pty association is not supported for `%s'" name)))
 	  (let ((p (tramp-get-connection-process v)))
 	    ;; Set sentinel and query flag for this process.
+	    (tramp-set-connection-property p "vector" v)
 	    (set-process-sentinel p 'tramp-process-sentinel)
 	    (tramp-set-process-query-on-exit-flag p t)
 	    ;; Return process.