8338890: Add monitoring/management interface for the virtual thread scheduler

Reviewed-by: kevinw
This commit is contained in:
Alan Bateman 2024-09-10 07:23:35 +00:00
parent 5e822c24bb
commit 7e2bcf6d00
23 changed files with 711 additions and 53 deletions

View file

@ -65,6 +65,7 @@ import java.util.PropertyPermission;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.WeakHashMap;
import java.util.concurrent.Executor;
import java.util.function.Supplier;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Stream;
@ -2766,6 +2767,10 @@ public final class System {
}
}
public Executor virtualThreadDefaultScheduler() {
return VirtualThread.defaultScheduler();
}
public StackWalker newStackWalkerInstance(Set<StackWalker.Option> options,
ContinuationScope contScope,
Continuation continuation) {

View file

@ -142,6 +142,14 @@ final class VirtualThread extends BaseVirtualThread {
// termination object when joining, created lazily if needed
private volatile CountDownLatch termination;
/**
* Returns the default scheduler.
*/
static Executor defaultScheduler() {
return DEFAULT_SCHEDULER;
}
/**
* Returns the continuation scope used for virtual threads.
*/

View file

@ -44,6 +44,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executor;
import java.util.concurrent.RejectedExecutionException;
import java.util.stream.Stream;
@ -601,6 +602,11 @@ public interface JavaLangAccess {
*/
void unparkVirtualThread(Thread thread);
/**
* Returns the virtual thread default scheduler.
*/
Executor virtualThreadDefaultScheduler();
/**
* Creates a new StackWalker
*/

View file

@ -172,6 +172,7 @@ module java.base {
jdk.jartool,
jdk.jlink,
jdk.jfr,
jdk.management,
jdk.net,
jdk.sctp,
jdk.crypto.cryptoki;