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 89
89
(defonce ^ExecutorService compute-executor
90
90
(Executors/newCachedThreadPool (counted-thread-factory " async-compute-%d" true )))
91
91
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
-
99
92
(defn exec
100
- [f exec]
93
+ [^Runnable r exec]
101
94
(let [^ExecutorService e (case exec
102
95
:compute compute-executor
103
96
: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