diff --git a/packages/kmono-core/src/k16/kmono/core/thread.clj b/packages/kmono-core/src/k16/kmono/core/thread.clj index 409ef26..264089c 100644 --- a/packages/kmono-core/src/k16/kmono/core/thread.clj +++ b/packages/kmono-core/src/k16/kmono/core/thread.clj @@ -6,8 +6,13 @@ (set! *warn-on-reflection* true) +(defmacro ^:private default-executor [] + (if (>= (.feature (Runtime/version)) 21) + `(Executors/newVirtualThreadPerTaskExecutor) + `(Executors/newCachedThreadPool))) + (def ^:dynamic ^:private *executor* - (Executors/newVirtualThreadPerTaskExecutor)) + (default-executor)) (defmacro vthread [& body] `(let [^Callable fn# (bound-fn [] ~@body)]