aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2011-02-10 14:37:42 -0500
committerStefan Monnier2011-02-10 14:37:42 -0500
commitcf77dd27af3e9893f4051887cb0e17999bbdb631 (patch)
tree0a61fdc807ce9ca88ec618222107b9b248e9e9ee
parent665addc97b7d74ac2456ec14448bc1c3f3d21471 (diff)
downloademacs-cf77dd27af3e9893f4051887cb0e17999bbdb631.tar.gz
emacs-cf77dd27af3e9893f4051887cb0e17999bbdb631.zip
* lisp/vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid
bzr locking race condition.
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/vc/vc-dir.el6
2 files changed, 7 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index dd33dda4382..70dc7697814 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,8 @@
12011-02-10 Stefan Monnier <monnier@iro.umontreal.ca> 12011-02-10 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid
4 bzr locking race condition.
5
3 * emacs-lisp/edebug.el (edebug-instrument-function): Check a marker is 6 * emacs-lisp/edebug.el (edebug-instrument-function): Check a marker is
4 still valid before using it. 7 still valid before using it.
5 8
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index 5f386bcee76..38fbaaedd32 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -1061,6 +1061,9 @@ Throw an error if another update process is in progress."
1061 (unless (vc-dir-fileinfo->directory info) 1061 (unless (vc-dir-fileinfo->directory info)
1062 (setf (vc-dir-fileinfo->needs-update info) t) nil)) 1062 (setf (vc-dir-fileinfo->needs-update info) t) nil))
1063 vc-ewoc) 1063 vc-ewoc)
1064 ;; Bzr has serious locking problems, so setup the headers first (this is
1065 ;; synchronous) rather than doing it while dir-status is running.
1066 (ewoc-set-hf vc-ewoc (vc-dir-headers backend def-dir) "")
1064 (lexical-let ((buffer (current-buffer))) 1067 (lexical-let ((buffer (current-buffer)))
1065 (with-current-buffer vc-dir-process-buffer 1068 (with-current-buffer vc-dir-process-buffer
1066 (cd def-dir) 1069 (cd def-dir)
@@ -1081,8 +1084,7 @@ Throw an error if another update process is in progress."
1081 (vc-dir-refresh-files 1084 (vc-dir-refresh-files
1082 (mapcar 'vc-dir-fileinfo->name remaining) 1085 (mapcar 'vc-dir-fileinfo->name remaining)
1083 'up-to-date) 1086 'up-to-date)
1084 (setq mode-line-process nil))))))))) 1087 (setq mode-line-process nil))))))))))))
1085 (ewoc-set-hf vc-ewoc (vc-dir-headers backend def-dir) ""))))
1086 1088
1087(defun vc-dir-show-fileentry (file) 1089(defun vc-dir-show-fileentry (file)
1088 "Insert an entry for a specific file into the current *VC-dir* listing. 1090 "Insert an entry for a specific file into the current *VC-dir* listing.