From d09ab6f46c82a4a6b8734ef94336a0f163082d80 Mon Sep 17 00:00:00 2001 From: Jack Lu Date: Fri, 31 Jan 2025 16:44:49 -0500 Subject: [PATCH] Address review comments Formating fix and use predefined macros Signed-off-by: Jack Lu --- .../share/classes/java/lang/Thread.java | 49 ++++++++++--------- runtime/vm/threadhelp.cpp | 2 +- runtime/vm/threadpark.cpp | 2 +- 3 files changed, 27 insertions(+), 26 deletions(-) diff --git a/jcl/src/java.base/share/classes/java/lang/Thread.java b/jcl/src/java.base/share/classes/java/lang/Thread.java index 44f6cd02a79..917666c54f2 100644 --- a/jcl/src/java.base/share/classes/java/lang/Thread.java +++ b/jcl/src/java.base/share/classes/java/lang/Thread.java @@ -94,15 +94,15 @@ private static final class TidLock { */ private volatile boolean deadInterrupt; /*[ENDIF] JAVA_SPEC_VERSION >= 14 */ - private volatile boolean started; // If !isAlive(), tells if Thread died already or hasn't even started - private String name; // The Thread's name - private int priority = NORM_PRIORITY; // The Thread's current priority + private volatile boolean started; // If !isAlive(), tells if Thread died already or hasn't even started + private String name; // The Thread's name + private int priority = NORM_PRIORITY; // The Thread's current priority private boolean isDaemon; // Tells if the Thread is a daemon thread or not. private volatile int threadStatus; // The Thread's state. - ThreadGroup group; // A Thread belongs to exactly one ThreadGroup + ThreadGroup group; // A Thread belongs to exactly one ThreadGroup private Runnable runnable; // Target (optional) runnable object - private boolean stopCalled = false; // Used by the VM + private boolean stopCalled = false; // Used by the VM /*[PR 1FENTZW]*/ private ClassLoader contextClassLoader; // Used to find classes and resources in this Thread ThreadLocal.ThreadLocalMap threadLocals; @@ -1492,32 +1492,33 @@ public static enum State { /** * Returns the translation from a J9VMThread state to a Thread::State. * + * @param status thread status value set by VM. * @return this thread's state. * * @see State */ private State translateJ9VMThreadStateToThreadState(int status) { switch (status) { - case 1: // J9VMTHREAD_STATE_RUNNING - return State.RUNNABLE; - case 2: // J9VMTHREAD_STATE_BLOCKED - return State.BLOCKED; - case 4: // J9VMTHREAD_STATE_WAITING - case 0x80: // J9VMTHREAD_STATE_PARKED - return State.WAITING; - case 8: // J9VMTHREAD_STATE_SLEEPING - case 64: // J9VMTHREAD_STATE_WAITING_TIMED - case 0x100: // J9VMTHREAD_STATE_PARKED_TIMED - return State.TIMED_WAITING; - case 32: // J9VMTHREAD_STATE_DEAD - return State.TERMINATED; - default: - synchronized (lock) { - if (threadRef == NO_REF) { - return State.TERMINATED; - } - return State.values()[getStateImpl(threadRef)]; + case 1: // J9VMTHREAD_STATE_RUNNING + return State.RUNNABLE; + case 2: // J9VMTHREAD_STATE_BLOCKED + return State.BLOCKED; + case 4: // J9VMTHREAD_STATE_WAITING + case 0x80: // J9VMTHREAD_STATE_PARKED + return State.WAITING; + case 8: // J9VMTHREAD_STATE_SLEEPING + case 64: // J9VMTHREAD_STATE_WAITING_TIMED + case 0x100: // J9VMTHREAD_STATE_PARKED_TIMED + return State.TIMED_WAITING; + case 32: // J9VMTHREAD_STATE_DEAD + return State.TERMINATED; + default: + synchronized (lock) { + if (threadRef == NO_REF) { + return State.TERMINATED; } + return State.values()[getStateImpl(threadRef)]; + } } } diff --git a/runtime/vm/threadhelp.cpp b/runtime/vm/threadhelp.cpp index 84dab40c7eb..d0f3b94f491 100644 --- a/runtime/vm/threadhelp.cpp +++ b/runtime/vm/threadhelp.cpp @@ -107,7 +107,7 @@ monitorWaitImpl(J9VMThread *vmThread, j9object_t object, I_64 millis, I_32 nanos J9VMTHREAD_SET_BLOCKINGENTEROBJECT(vmThread, vmThread, object); object = NULL; /* Set j.l.Thread status to WAITING. */ - U_64 oldState = (0 != (thrstate & J9_PUBLIC_FLAGS_THREAD_TIMED)) + U_64 oldState = J9_ARE_ANY_BITS_SET(thrstate, J9_PUBLIC_FLAGS_THREAD_TIMED) ? VM_VMHelpers::setThreadState(vmThread, J9VMTHREAD_STATE_WAITING_TIMED) : VM_VMHelpers::setThreadState(vmThread, J9VMTHREAD_STATE_WAITING); internalReleaseVMAccessSetStatus(vmThread, thrstate); diff --git a/runtime/vm/threadpark.cpp b/runtime/vm/threadpark.cpp index 77f0e815046..71325fd576e 100644 --- a/runtime/vm/threadpark.cpp +++ b/runtime/vm/threadpark.cpp @@ -99,7 +99,7 @@ threadParkImpl(J9VMThread *vmThread, BOOLEAN timeoutIsEpochRelative, I_64 timeou J9VMTHREAD_SET_BLOCKINGENTEROBJECT(vmThread, vmThread, J9VMJAVALANGTHREAD_PARKBLOCKER(vmThread, vmThread->threadObject)); TRIGGER_J9HOOK_VM_PARK(vm->hookInterface, vmThread, millis, nanos); /* Set j.l.Thread status to WAITING. */ - U_64 oldState = (0 != (thrstate & J9_PUBLIC_FLAGS_THREAD_TIMED)) + U_64 oldState = J9_ARE_ANY_BITS_SET(thrstate, J9_PUBLIC_FLAGS_THREAD_TIMED) ? VM_VMHelpers::setThreadState(vmThread, J9VMTHREAD_STATE_WAITING_TIMED) : VM_VMHelpers::setThreadState(vmThread, J9VMTHREAD_STATE_WAITING); internalReleaseVMAccessSetStatus(vmThread, thrstate);