< prev index next > src/java.base/windows/classes/sun/nio/ch/NativeThread.java
Print this page
* questions.
*/
package sun.nio.ch;
! // Signalling operations on native threads
! public class NativeThread {
! private static final long VIRTUAL_THREAD_ID = -1L;
! /**
! * Returns the id of the current native thread if the platform can signal
! * native threads, 0 if the platform can not signal native threads, or
! * -1L if the current thread is a virtual thread.
- */
- public static long current() {
- if (Thread.currentThread().isVirtual()) {
- return VIRTUAL_THREAD_ID;
} else {
! // no support for signalling threads on Windows
- return 0;
}
}
! /**
! * Signals the given native thread.
! *
! * @throws IllegalArgumentException if tid is not a token to a native thread
! */
- static void signal(long tid) {
throw new UnsupportedOperationException();
}
! /**
! * Returns true the tid is the id of a native thread.
- */
- static boolean isNativeThread(long tid) {
- return false;
}
! /**
! * Returns true if tid is -1L.
- * @see #current()
- */
- static boolean isVirtualThread(long tid) {
- return (tid == VIRTUAL_THREAD_ID);
}
}
* questions.
*/
package sun.nio.ch;
+ public class NativeThread {
+ private final Thread thread;
! private NativeThread(Thread thread) {
+ this.thread = thread;
+ }
! Thread thread() {
! return thread;
+ }
! static NativeThread current() {
! Thread t = Thread.currentThread();
! if (t.isVirtual()) {
! return new NativeThread(t);
} else {
! return null;
}
}
! static NativeThread currentNativeThread() {
! return null;
! }
!
! void signal() {
throw new UnsupportedOperationException();
}
! static boolean isVirtualThread(NativeThread nt) {
! return nt != null;
}
! static boolean isNativeThread(NativeThread nt) {
! return false;
}
}
< prev index next >