From 68878e7f897d23953b850110784dd0d48806782b Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Wed, 8 Mar 2023 10:55:43 +0100 Subject: [PATCH] Fix #1510 --- CHANGELOG.md | 1 + src/babashka/impl/classes.clj | 4 +++- test/babashka/interop_test.clj | 7 ++++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 91854b2f..d04737e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ A preview of the next release can be installed from ## Unreleased - [#1507](https://github.com/babashka/babashka/issues/1507): Expose methods on java.lang.VirtualThread ([@lispyclouds](https://github.com/lispyclouds)) +- [#1510](https://github.com/babashka/babashka/issues/1510): add virtual thread interop on `Thread` ## 1.2.174 (2023-03-01) diff --git a/src/babashka/impl/classes.clj b/src/babashka/impl/classes.clj index 00eb9ea0..388e5b49 100644 --- a/src/babashka/impl/classes.clj +++ b/src/babashka/impl/classes.clj @@ -55,7 +55,9 @@ {:name "start"} {:name "toString"} {:name "yield"} - ~@(when has-of-virtual? [{:name "ofVirtual"}])]} + ~@(when has-of-virtual? [{:name "ofVirtual"} + {:name "startVirtualThread"} + {:name "isVirtual"}])]} java.net.URL {:allPublicConstructors true :allPublicFields true diff --git a/test/babashka/interop_test.clj b/test/babashka/interop_test.clj index ec42bc86..a6ddfb12 100644 --- a/test/babashka/interop_test.clj +++ b/test/babashka/interop_test.clj @@ -13,4 +13,9 @@ (deftest vthreads-test (testing "can invoke methods on java.lang.VirtualThread" - (is (= "" (bb nil "(set-agent-send-off-executor! (java.util.concurrent.Executors/newVirtualThreadPerTaskExecutor)) @(future (.getName (Thread/currentThread)))"))))) + (is (= "" (bb nil "(set-agent-send-off-executor! (java.util.concurrent.Executors/newVirtualThreadPerTaskExecutor)) @(future (.getName (Thread/currentThread)))")))) + (is (= [false true] + (bb nil (pr-str '(do + (def t (Thread. (fn []))) + (def vt (Thread/startVirtualThread (fn []))) + [(.isVirtual t) (.isVirtual vt)]))))))