File tree Expand file tree Collapse file tree 1 file changed +16
-10
lines changed
src/main/clojure/clojure/core/async/impl Expand file tree Collapse file tree 1 file changed +16
-10
lines changed Original file line number Diff line number Diff line change 8989(defonce ^ExecutorService compute-executor
9090 (Executors/newCachedThreadPool (counted-thread-factory " async-compute-%d" true )))
9191
92- (defn run
93- " Runs Runnable r on current thread when :on-caller? meta true, else in a thread pool thread."
94- [^Runnable r]
95- (if (-> r meta :on-caller? )
96- (try (.run r) (catch Throwable t (ex-handler t)))
97- (impl/exec @executor r)))
98-
9992(defn exec
100- [f exec]
93+ [^Runnable r exec]
10194 (let [^ExecutorService e (case exec
10295 :compute compute-executor
10396 :io io-executor
104- mixed-executor)]
105- (.execute e f)))
97+ :mixed mixed-executor
98+ nil )]
99+ (if e
100+ (.execute e r)
101+ (impl/exec @executor r))))
102+
103+ (defn run
104+ " Runs Runnable r on current thread when :on-caller? meta true, else in a thread pool thread."
105+ ([^Runnable r]
106+ (if (-> r meta :on-caller? )
107+ (try (.run r) (catch Throwable t (ex-handler t)))
108+ (exec r nil )))
109+ ([^Runnable r workload]
110+ (exec r workload)))
111+
You can’t perform that action at this time.
0 commit comments