37 import java.lang.annotation.Annotation;
38 import java.lang.foreign.MemorySegment;
39 import java.lang.invoke.MethodHandle;
40 import java.lang.invoke.MethodType;
41 import java.lang.module.ModuleDescriptor;
42 import java.lang.reflect.Executable;
43 import java.lang.reflect.Method;
44 import java.net.URI;
45 import java.nio.channels.Channel;
46 import java.nio.channels.spi.SelectorProvider;
47 import java.nio.charset.CharacterCodingException;
48 import java.nio.charset.Charset;
49 import java.security.ProtectionDomain;
50 import java.util.List;
51 import java.util.Locale;
52 import java.util.Map;
53 import java.util.Objects;
54 import java.util.Properties;
55 import java.util.ResourceBundle;
56 import java.util.Set;
57 import java.util.concurrent.Executor;
58 import java.util.function.Supplier;
59 import java.util.concurrent.ConcurrentHashMap;
60 import java.util.stream.Stream;
61
62 import jdk.internal.javac.Restricted;
63 import jdk.internal.loader.NativeLibraries;
64 import jdk.internal.logger.LoggerFinderLoader.TemporaryLoggerFinder;
65 import jdk.internal.misc.Blocker;
66 import jdk.internal.misc.CarrierThreadLocal;
67 import jdk.internal.util.StaticProperty;
68 import jdk.internal.module.ModuleBootstrap;
69 import jdk.internal.module.ServicesCatalog;
70 import jdk.internal.reflect.CallerSensitive;
71 import jdk.internal.reflect.Reflection;
72 import jdk.internal.access.JavaLangAccess;
73 import jdk.internal.access.SharedSecrets;
74 import jdk.internal.logger.LoggerFinderLoader;
75 import jdk.internal.logger.LazyLoggers;
76 import jdk.internal.logger.LocalizedLoggerWrapper;
77 import jdk.internal.misc.VM;
2306 }
2307 }
2308
2309 public void parkVirtualThread(long nanos) {
2310 Thread thread = Thread.currentThread();
2311 if (thread instanceof BaseVirtualThread vthread) {
2312 vthread.parkNanos(nanos);
2313 } else {
2314 throw new WrongThreadException();
2315 }
2316 }
2317
2318 public void unparkVirtualThread(Thread thread) {
2319 if (thread instanceof BaseVirtualThread vthread) {
2320 vthread.unpark();
2321 } else {
2322 throw new IllegalArgumentException();
2323 }
2324 }
2325
2326 public Executor virtualThreadDefaultScheduler() {
2327 return VirtualThread.defaultScheduler();
2328 }
2329
2330 public StackWalker newStackWalkerInstance(Set<StackWalker.Option> options,
2331 ContinuationScope contScope,
2332 Continuation continuation) {
2333 return StackWalker.newInstance(options, null, contScope, continuation);
2334 }
2335
2336 public String getLoaderNameID(ClassLoader loader) {
2337 return loader != null ? loader.nameAndId() : "null";
2338 }
2339
2340 @Override
2341 public void copyToSegmentRaw(String string, MemorySegment segment, long offset, int srcIndex, int srcLength) {
2342 string.copyToSegmentRaw(segment, offset, srcIndex, srcLength);
2343 }
2344
2345 @Override
2346 public boolean bytesCompatible(String string, Charset charset, int srcIndex, int numChars) {
|
37 import java.lang.annotation.Annotation;
38 import java.lang.foreign.MemorySegment;
39 import java.lang.invoke.MethodHandle;
40 import java.lang.invoke.MethodType;
41 import java.lang.module.ModuleDescriptor;
42 import java.lang.reflect.Executable;
43 import java.lang.reflect.Method;
44 import java.net.URI;
45 import java.nio.channels.Channel;
46 import java.nio.channels.spi.SelectorProvider;
47 import java.nio.charset.CharacterCodingException;
48 import java.nio.charset.Charset;
49 import java.security.ProtectionDomain;
50 import java.util.List;
51 import java.util.Locale;
52 import java.util.Map;
53 import java.util.Objects;
54 import java.util.Properties;
55 import java.util.ResourceBundle;
56 import java.util.Set;
57 import java.util.function.Supplier;
58 import java.util.concurrent.ConcurrentHashMap;
59 import java.util.stream.Stream;
60
61 import jdk.internal.javac.Restricted;
62 import jdk.internal.loader.NativeLibraries;
63 import jdk.internal.logger.LoggerFinderLoader.TemporaryLoggerFinder;
64 import jdk.internal.misc.Blocker;
65 import jdk.internal.misc.CarrierThreadLocal;
66 import jdk.internal.util.StaticProperty;
67 import jdk.internal.module.ModuleBootstrap;
68 import jdk.internal.module.ServicesCatalog;
69 import jdk.internal.reflect.CallerSensitive;
70 import jdk.internal.reflect.Reflection;
71 import jdk.internal.access.JavaLangAccess;
72 import jdk.internal.access.SharedSecrets;
73 import jdk.internal.logger.LoggerFinderLoader;
74 import jdk.internal.logger.LazyLoggers;
75 import jdk.internal.logger.LocalizedLoggerWrapper;
76 import jdk.internal.misc.VM;
2305 }
2306 }
2307
2308 public void parkVirtualThread(long nanos) {
2309 Thread thread = Thread.currentThread();
2310 if (thread instanceof BaseVirtualThread vthread) {
2311 vthread.parkNanos(nanos);
2312 } else {
2313 throw new WrongThreadException();
2314 }
2315 }
2316
2317 public void unparkVirtualThread(Thread thread) {
2318 if (thread instanceof BaseVirtualThread vthread) {
2319 vthread.unpark();
2320 } else {
2321 throw new IllegalArgumentException();
2322 }
2323 }
2324
2325 public Thread.VirtualThreadScheduler builtinVirtualThreadScheduler() {
2326 return VirtualThread.builtinScheduler(true);
2327 }
2328
2329 public Thread.VirtualThreadScheduler defaultVirtualThreadScheduler() {
2330 return VirtualThread.defaultScheduler();
2331 }
2332
2333 public StackWalker newStackWalkerInstance(Set<StackWalker.Option> options,
2334 ContinuationScope contScope,
2335 Continuation continuation) {
2336 return StackWalker.newInstance(options, null, contScope, continuation);
2337 }
2338
2339 public String getLoaderNameID(ClassLoader loader) {
2340 return loader != null ? loader.nameAndId() : "null";
2341 }
2342
2343 @Override
2344 public void copyToSegmentRaw(String string, MemorySegment segment, long offset, int srcIndex, int srcLength) {
2345 string.copyToSegmentRaw(segment, offset, srcIndex, srcLength);
2346 }
2347
2348 @Override
2349 public boolean bytesCompatible(String string, Charset charset, int srcIndex, int numChars) {
|