branch: externals/el-job
commit 1e64eca4dbe58ddd996cd549f7756a5a439dfe32
Author: Martin Edström <[email protected]>
Commit: Martin Edström <[email protected]>
Simplify
---
el-job-ng.el | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/el-job-ng.el b/el-job-ng.el
index 18dfcdd5af..3f44a5a18d 100644
--- a/el-job-ng.el
+++ b/el-job-ng.el
@@ -215,6 +215,11 @@ ID can also be passed to these helpers:
(cl-loop for (var . val) in inject-vars
when (string-prefix-p "#" (readablep val))
do (error "Cannot inject variable `%s' with value: %s" var val))
+ ;; Clean-up defunct anonymous jobs
+ (cl-loop for id being each hash-key of el-job-ng--jobs
+ when (and (numberp id) (not (el-job-ng-busy-p id)))
+ do (remhash id el-job-ng--jobs))
+
(setq id (or id (abs (random))))
(let ((job (or (gethash id el-job-ng--jobs)
(puthash id (el-job-ng--make-job :id id) el-job-ng--jobs))))
@@ -370,8 +375,6 @@ and run `el-job-ng--handle-finished-child'."
(when (= 0 el-job-ng--debug-level)
(kill-buffer)))
(when (null .processes)
- (when (numberp .id) ;; Clean up anonymous job
- (remhash .id el-job-ng--jobs))
(when .callback
;; Allow quitting out of a hung or slow CALLBACK. Since we're called
;; by a process sentinel, `inhibit-quit' is t at this time.
@@ -440,16 +443,12 @@ Otherwise, a keyboard quit would let it continue in the
background."
(delete-process proc))))
(let ((stderr (el-job-ng-stderr id)))
(when (buffer-live-p stderr)
- (kill-buffer stderr)))
- (when (numberp id) ;; Clean up anonymous job
- (remhash id el-job-ng--jobs)))
+ (kill-buffer stderr))))
(defun el-job-ng-kill-keep-bufs (id)
"Kill processes for job ID."
(dolist (proc (el-job-ng-processes id))
- (delete-process proc))
- (when (numberp id) ;; Clean up anonymous job
- (remhash id el-job-ng--jobs)))
+ (delete-process proc)))
(defun el-job-ng-stderr (id)
(let ((job (el-job-ng-get-job id)))