48 import java.net.URL;
49 import java.nio.channels.Channel;
50 import java.nio.channels.spi.SelectorProvider;
51 import java.nio.charset.CharacterCodingException;
52 import java.nio.charset.Charset;
53 import java.security.AccessControlContext;
54 import java.security.AccessController;
55 import java.security.CodeSource;
56 import java.security.PrivilegedAction;
57 import java.security.ProtectionDomain;
58 import java.util.Collections;
59 import java.util.List;
60 import java.util.Locale;
61 import java.util.Map;
62 import java.util.Objects;
63 import java.util.Properties;
64 import java.util.PropertyPermission;
65 import java.util.ResourceBundle;
66 import java.util.Set;
67 import java.util.WeakHashMap;
68 import java.util.function.Supplier;
69 import java.util.concurrent.ConcurrentHashMap;
70 import java.util.stream.Stream;
71
72 import jdk.internal.logger.LoggerFinderLoader.TemporaryLoggerFinder;
73 import jdk.internal.misc.Blocker;
74 import jdk.internal.misc.CarrierThreadLocal;
75 import jdk.internal.misc.Unsafe;
76 import jdk.internal.util.StaticProperty;
77 import jdk.internal.module.ModuleBootstrap;
78 import jdk.internal.module.ServicesCatalog;
79 import jdk.internal.reflect.CallerSensitive;
80 import jdk.internal.reflect.Reflection;
81 import jdk.internal.access.JavaLangAccess;
82 import jdk.internal.access.SharedSecrets;
83 import jdk.internal.logger.LoggerFinderLoader;
84 import jdk.internal.logger.LazyLoggers;
85 import jdk.internal.logger.LocalizedLoggerWrapper;
86 import jdk.internal.misc.VM;
87 import jdk.internal.util.SystemProps;
2726 }
2727 }
2728
2729 public void parkVirtualThread(long nanos) {
2730 Thread thread = Thread.currentThread();
2731 if (thread instanceof BaseVirtualThread vthread) {
2732 vthread.parkNanos(nanos);
2733 } else {
2734 throw new WrongThreadException();
2735 }
2736 }
2737
2738 public void unparkVirtualThread(Thread thread) {
2739 if (thread instanceof BaseVirtualThread vthread) {
2740 vthread.unpark();
2741 } else {
2742 throw new WrongThreadException();
2743 }
2744 }
2745
2746 public StackWalker newStackWalkerInstance(Set<StackWalker.Option> options,
2747 ContinuationScope contScope,
2748 Continuation continuation) {
2749 return StackWalker.newInstance(options, null, contScope, continuation);
2750 }
2751
2752 public String getLoaderNameID(ClassLoader loader) {
2753 return loader != null ? loader.nameAndId() : "null";
2754 }
2755
2756 @Override
2757 public void copyToSegmentRaw(String string, MemorySegment segment, long offset) {
2758 string.copyToSegmentRaw(segment, offset);
2759 }
2760
2761 @Override
2762 public boolean bytesCompatible(String string, Charset charset) {
2763 return string.bytesCompatible(charset);
2764 }
2765
|
48 import java.net.URL;
49 import java.nio.channels.Channel;
50 import java.nio.channels.spi.SelectorProvider;
51 import java.nio.charset.CharacterCodingException;
52 import java.nio.charset.Charset;
53 import java.security.AccessControlContext;
54 import java.security.AccessController;
55 import java.security.CodeSource;
56 import java.security.PrivilegedAction;
57 import java.security.ProtectionDomain;
58 import java.util.Collections;
59 import java.util.List;
60 import java.util.Locale;
61 import java.util.Map;
62 import java.util.Objects;
63 import java.util.Properties;
64 import java.util.PropertyPermission;
65 import java.util.ResourceBundle;
66 import java.util.Set;
67 import java.util.WeakHashMap;
68 import java.util.concurrent.Executor;
69 import java.util.concurrent.ScheduledExecutorService;
70 import java.util.function.Supplier;
71 import java.util.concurrent.ConcurrentHashMap;
72 import java.util.stream.Stream;
73
74 import jdk.internal.logger.LoggerFinderLoader.TemporaryLoggerFinder;
75 import jdk.internal.misc.Blocker;
76 import jdk.internal.misc.CarrierThreadLocal;
77 import jdk.internal.misc.Unsafe;
78 import jdk.internal.util.StaticProperty;
79 import jdk.internal.module.ModuleBootstrap;
80 import jdk.internal.module.ServicesCatalog;
81 import jdk.internal.reflect.CallerSensitive;
82 import jdk.internal.reflect.Reflection;
83 import jdk.internal.access.JavaLangAccess;
84 import jdk.internal.access.SharedSecrets;
85 import jdk.internal.logger.LoggerFinderLoader;
86 import jdk.internal.logger.LazyLoggers;
87 import jdk.internal.logger.LocalizedLoggerWrapper;
88 import jdk.internal.misc.VM;
89 import jdk.internal.util.SystemProps;
2728 }
2729 }
2730
2731 public void parkVirtualThread(long nanos) {
2732 Thread thread = Thread.currentThread();
2733 if (thread instanceof BaseVirtualThread vthread) {
2734 vthread.parkNanos(nanos);
2735 } else {
2736 throw new WrongThreadException();
2737 }
2738 }
2739
2740 public void unparkVirtualThread(Thread thread) {
2741 if (thread instanceof BaseVirtualThread vthread) {
2742 vthread.unpark();
2743 } else {
2744 throw new WrongThreadException();
2745 }
2746 }
2747
2748 public Executor virtualThreadDefaultScheduler() {
2749 return VirtualThread.defaultScheduler();
2750 }
2751
2752 public Stream<ScheduledExecutorService> virtualThreadDelayedTaskSchedulers() {
2753 return VirtualThread.delayedTaskSchedulers();
2754 }
2755
2756 public StackWalker newStackWalkerInstance(Set<StackWalker.Option> options,
2757 ContinuationScope contScope,
2758 Continuation continuation) {
2759 return StackWalker.newInstance(options, null, contScope, continuation);
2760 }
2761
2762 public String getLoaderNameID(ClassLoader loader) {
2763 return loader != null ? loader.nameAndId() : "null";
2764 }
2765
2766 @Override
2767 public void copyToSegmentRaw(String string, MemorySegment segment, long offset) {
2768 string.copyToSegmentRaw(segment, offset);
2769 }
2770
2771 @Override
2772 public boolean bytesCompatible(String string, Charset charset) {
2773 return string.bytesCompatible(charset);
2774 }
2775
|