You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Peter Novodvorsky (JIRA)" <ji...@apache.org> on 2007/02/28 13:09:57 UTC

[jira] Updated: (HARMONY-3253) [drlvm][thread manager] Thread.join() does not ensure the TERMINATED state of a thread

     [ https://issues.apache.org/jira/browse/HARMONY-3253?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Peter Novodvorsky updated HARMONY-3253:
---------------------------------------

    Attachment: accurate-terminated-state.patch

This patch should fix this bug. Also note, that Thread.join() doesn't use any of *_join() C functions.

> [drlvm][thread manager] Thread.join() does not ensure the TERMINATED state of a thread
> --------------------------------------------------------------------------------------
>
>                 Key: HARMONY-3253
>                 URL: https://issues.apache.org/jira/browse/HARMONY-3253
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Elena Semukhina
>         Attachments: accurate-terminated-state.patch
>
>
>  The kernel test ThreadTest.testInterruptTerminated() fails intermittently with the message "interrupt status has not changed to true" when interrupting a terminated thread. This could happen when a thread exited join() but its state at that moment was not TERMINATED.
> The following test shows up that the state of a thread after termination is not always TERMINATED.
> public class TestGetStateJoined {
>     public static void main(String args[]) {
>         int count = 100;
>         for (int i = 0; i < count; i++) {
>             Thread t = new Thread();
>             t.start();
>             try {
>                 t.join();
>             } catch (InterruptedException e) {
>             }
>             Thread.State ts = t.getState();
>             System.out.println("state : " + ts);
>         }
>     }
> }
> The test alternately prints "RUNNABLE" and "TERMINATED" on DRLVM:
> > $DRLVM -showversion TestGetStateJoined
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or its licensors, as applicable.
> java version "1.5.0" 
> pre-alpha : not complete or compatible
> svn = r512139, (Feb 27 2007), Linux/ia32/gcc 3.3.3, debug build
> http://incubator.apache.org/harmony
> state : TERMINATED
> state : RUNNABLE
> state : TERMINATED
> state : TERMINATED
> state : TERMINATED
> state : RUNNABLE
> state : TERMINATED
> ...
> while on RI it always prints "TERMINATED":
> > $RI -showversion TestGetStateJoined
> java version "1.5.0_08"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)
> Java HotSpot(TM) Server VM (build 1.5.0_08-b03, mixed mode)
>  
> state : TERMINATED
> state : TERMINATED
> state : TERMINATED
> ....

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.