File tree 2 files changed +12
-3
lines changed
2 files changed +12
-3
lines changed Original file line number Diff line number Diff line change 1047
1047
(module-graph/validate-inputs inputs)
1048
1048
(let [deque (LinkedBlockingDeque. inputs)
1049
1049
input-set (atom (into #{} (comp (remove nil?) (map :ns )) inputs))
1050
- cnt (+ 2 (.. Runtime getRuntime availableProcessors))
1050
+ cnt (+ 2 (int ( * 0.6 ( .. Runtime getRuntime availableProcessors)) ))
1051
1051
latch (CountDownLatch. cnt)
1052
1052
es (Executors/newFixedThreadPool cnt)
1053
1053
compiled (atom [])
Original file line number Diff line number Diff line change 31
31
[cljs.source-map :as sm]))
32
32
#? (:clj (:import java.lang.StringBuilder
33
33
[java.io File Writer]
34
+ [java.util.concurrent Executors ExecutorService TimeUnit]
34
35
[java.util.concurrent.atomic AtomicLong]
35
36
[cljs.tagged_literals JSValue])
36
37
:cljs (:import [goog.string StringBuffer])))
1508
1509
find-ns-starts-with (memoize find-ns-starts-with)]
1509
1510
(emitln (compiled-by-string opts))
1510
1511
(with-open [rdr (io/reader src)]
1511
- (let [env (ana/empty-env )]
1512
+ (let [env (ana/empty-env )
1513
+ emitter (when (:parallel-build opts)
1514
+ (Executors/newSingleThreadExecutor ))
1515
+ emit (if emitter
1516
+ #(.execute emitter ^Runnable (bound-fn [] (emit %)))
1517
+ emit)]
1512
1518
(loop [forms (ana/forms-seq* rdr (util/path src))
1513
1519
ns-name nil
1514
1520
deps nil ]
1543
1549
:name ns-name}))
1544
1550
(emit ast)
1545
1551
(recur (rest forms) ns-name deps))))
1546
- (let [sm-data (when *source-map-data* (assoc @*source-map-data*
1552
+ (let [_ (when emitter
1553
+ (.shutdown emitter)
1554
+ (.awaitTermination emitter 1000 TimeUnit/HOURS))
1555
+ sm-data (when *source-map-data* (assoc @*source-map-data*
1547
1556
:gen-col (.get ^AtomicLong *source-map-data-gen-col*)))
1548
1557
ret (merge
1549
1558
{:ns (or ns-name 'cljs.user)
You can’t perform that action at this time.
0 commit comments