mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 18:40:39 -08:00
Store ongoing compilations processes as hash table.
* lisp/emacs-lisp/comp.el (comp-async-processes): Rename as `comp-async-compilations'. (comp-async-runnings): Make use as `comp-async-compilations'. (comp-run-async-workers): Likewise.
This commit is contained in:
parent
e527d1ab28
commit
e208de9d25
1 changed files with 12 additions and 7 deletions
|
|
@ -2146,16 +2146,21 @@ Prepare every function for final compilation and drive the C back-end."
|
|||
(defvar comp-files-queue ()
|
||||
"List of Elisp files to be compiled.")
|
||||
|
||||
(defvar comp-async-processes ()
|
||||
"List of running async compilation processes.")
|
||||
(defvar comp-async-compilations (make-hash-table :test #'equal)
|
||||
"Hash table file-name -> async compilation process.")
|
||||
|
||||
(defun comp-async-runnings ()
|
||||
"Return the number of async compilations currently running.
|
||||
This function has the side effect of cleaning-up finished
|
||||
processes from `comp-async-processes'"
|
||||
(setf comp-async-processes
|
||||
(cl-delete-if-not #'process-live-p comp-async-processes))
|
||||
(length comp-async-processes))
|
||||
processes from `comp-async-compilations'"
|
||||
(cl-loop
|
||||
for file-name in (cl-loop
|
||||
for file-name being each hash-key of comp-async-compilations
|
||||
for prc = (gethash file-name comp-async-compilations)
|
||||
unless (process-live-p prc)
|
||||
collect file-name)
|
||||
do (remhash file-name comp-async-compilations))
|
||||
(hash-table-count comp-async-compilations))
|
||||
|
||||
(let (num-cpus)
|
||||
(defun comp-effective-async-max-jobs ()
|
||||
|
|
@ -2213,7 +2218,7 @@ display a message."
|
|||
(comp-output-filename source-file1)
|
||||
(eq load1 'late)))
|
||||
(comp-run-async-workers)))))
|
||||
(push process comp-async-processes))
|
||||
(puthash source-file process comp-async-compilations))
|
||||
when (>= (comp-async-runnings) (comp-effective-async-max-jobs))
|
||||
do (cl-return)))
|
||||
;; No files left to compile and all processes finished.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue