OSDN Git Service

Treat thread state kWaitingWeakGcRootRead as kJavaRunnable.
authorHiroshi Yamauchi <yamauchi@google.com>
Mon, 21 Dec 2015 22:06:23 +0000 (14:06 -0800)
committerHiroshi Yamauchi <yamauchi@google.com>
Mon, 21 Dec 2015 22:06:23 +0000 (14:06 -0800)
Like kSuspended, kWaitingWeakGcRootRead means temporarily waiting for
GC's purpose rather than the thread is waiting on a monitor.

This may fix some jsr166 test failures.

Bug: 25883050
Bug: 12687968

Change-Id: Ib53e18c0fb2ff95aa0491b1531201e583288684e

runtime/native/java_lang_Thread.cc

index c75ff78..13edd67 100644 (file)
@@ -89,7 +89,7 @@ static jint Thread_nativeGetStatus(JNIEnv* env, jobject java_thread, jboolean ha
     case kWaitingInMainSignalCatcherLoop: return kJavaWaiting;
     case kWaitingForMethodTracingStart:   return kJavaWaiting;
     case kWaitingForVisitObjects:         return kJavaWaiting;
-    case kWaitingWeakGcRootRead:          return kJavaWaiting;
+    case kWaitingWeakGcRootRead:          return kJavaRunnable;
     case kWaitingForGcThreadFlip:         return kJavaWaiting;
     case kSuspended:                      return kJavaRunnable;
     // Don't add a 'default' here so the compiler can spot incompatible enum changes.