diff options
author | Andy McFadden <fadden@android.com> | 2009-09-01 12:20:13 -0700 |
---|---|---|
committer | Andy McFadden <fadden@android.com> | 2009-09-02 14:30:54 -0700 |
commit | 8863999f7478833afbf32c84a75c7d1cf505a63c (patch) | |
tree | f42704434f5d1744f95e5cff2b2e51bcaaea9721 /luni-kernel/src | |
parent | 051128862ae7c5c031b8ddb763848ed264a63746 (diff) | |
download | libcore-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.java | 4 |
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); } /** |