emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r103215: * lisp/vc/vc-dir.el (vc-dir-


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r103215: * lisp/vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid
Date: Thu, 10 Feb 2011 14:37:42 -0500
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 103215
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Thu 2011-02-10 14:37:42 -0500
message:
  * lisp/vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid
  bzr locking race condition.
modified:
  lisp/ChangeLog
  lisp/vc/vc-dir.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-02-10 19:21:07 +0000
+++ b/lisp/ChangeLog    2011-02-10 19:37:42 +0000
@@ -1,5 +1,8 @@
 2011-02-10  Stefan Monnier  <address@hidden>
 
+       * vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid
+       bzr locking race condition.
+
        * emacs-lisp/edebug.el (edebug-instrument-function): Check a marker is
        still valid before using it.
 

=== modified file 'lisp/vc/vc-dir.el'
--- a/lisp/vc/vc-dir.el 2011-01-26 08:36:39 +0000
+++ b/lisp/vc/vc-dir.el 2011-02-10 19:37:42 +0000
@@ -1061,6 +1061,9 @@
                  (unless (vc-dir-fileinfo->directory info)
                    (setf (vc-dir-fileinfo->needs-update info) t) nil))
                 vc-ewoc)
+      ;; Bzr has serious locking problems, so setup the headers first (this is
+      ;; synchronous) rather than doing it while dir-status is running.
+      (ewoc-set-hf vc-ewoc (vc-dir-headers backend def-dir) "")
       (lexical-let ((buffer (current-buffer)))
         (with-current-buffer vc-dir-process-buffer
           (cd def-dir)
@@ -1081,8 +1084,7 @@
                        (vc-dir-refresh-files
                         (mapcar 'vc-dir-fileinfo->name remaining)
                         'up-to-date)
-                     (setq mode-line-process nil)))))))))
-      (ewoc-set-hf vc-ewoc (vc-dir-headers backend def-dir) ""))))
+                     (setq mode-line-process nil))))))))))))
 
 (defun vc-dir-show-fileentry (file)
   "Insert an entry for a specific file into the current *VC-dir* listing.


reply via email to

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