branch: externals/diff-hl
commit 7da881a957b8c15ddcc754dd73543c95b128d716
Author: Dmitry Gutov <[email protected]>
Commit: Dmitry Gutov <[email protected]>
Fix the previous change: kill the temp buffer inside the thread instead
Using with-temp-buffer made the buffers stay around: kill-buffer at the end
of
that macro's definition was a no-op because of thread pinning.
---
diff-hl.el | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/diff-hl.el b/diff-hl.el
index 3345eeffc6..bce51f460c 100644
--- a/diff-hl.el
+++ b/diff-hl.el
@@ -420,11 +420,13 @@ It can be a relative expression as well, such as
\"HEAD^\" with Git, or
(run-hook-with-args-until-success 'diff-hl-async-inhibit-functions
default-directory)))
;; TODO: debounce if a thread is already running.
- (let ((buf (current-buffer)))
+ (let ((buf (current-buffer))
+ (temp-buffer (generate-new-buffer " *temp*" t)))
;; Switch buffer temporarily, to "unlock" it for other threads.
- (with-temp-buffer
+ (with-current-buffer temp-buffer
(make-thread
(lambda ()
+ (kill-buffer temp-buffer)
(when (buffer-live-p buf)
(set-buffer buf)
(diff-hl--update-safe)))