summaryrefslogtreecommitdiffstats
path: root/luni-kernel/src
diff options
context:
space:
mode:
authorAndy McFadden <fadden@android.com>2009-09-01 12:20:13 -0700
committerAndy McFadden <fadden@android.com>2009-09-02 14:30:54 -0700
commit8863999f7478833afbf32c84a75c7d1cf505a63c (patch)
treef42704434f5d1744f95e5cff2b2e51bcaaea9721 /luni-kernel/src
parent051128862ae7c5c031b8ddb763848ed264a63746 (diff)
downloadlibcore-8863999f7478833afbf32c84a75c7d1cf505a63c.zip
libcore-8863999f7478833afbf32c84a75c7d1cf505a63c.tar.gz
libcore-8863999f7478833afbf32c84a75c7d1cf505a63c.tar.bz2
DO NOT MERGE: Fix implementation of Thread.isAlive
(Originally submitted to master, pulling over to eclair.) The implementation of Thread.isAlive() was changed a couple of years ago as part of the Harmony integration. The current version relies on the thread's state value to determine its liveness, but the VM was originally written to be like JamVM, which used GNU ClassPath, which uses the vmThread field instead. It looks like it's possible for Thread.join() to get stuck, though as far as I know this hasn't happened. We're essentially rolling back part of 27774-p9. For internal bug 1966734. Also: ran --update on test 044.
Diffstat (limited to 'luni-kernel/src')
-rw-r--r--luni-kernel/src/main/java/java/lang/Thread.java4
1 files changed, 1 insertions, 3 deletions
diff --git a/luni-kernel/src/main/java/java/lang/Thread.java b/luni-kernel/src/main/java/java/lang/Thread.java
index 484c258..4f9f988 100644
--- a/luni-kernel/src/main/java/java/lang/Thread.java
+++ b/luni-kernel/src/main/java/java/lang/Thread.java
@@ -922,9 +922,7 @@ public class Thread implements Runnable {
* @since Android 1.0
*/
public final boolean isAlive() {
- Thread.State state = getState();
-
- return (state != Thread.State.TERMINATED && state != Thread.State.NEW);
+ return (vmThread != null);
}
/**