[cp-patches] FYI: Handle thread state

Andrew John Hughes a.hughes at dcs.shef.ac.uk
Thu Jun 29 09:35:59 UTC 2006


Hi Jeroen,

On 29 Jun 2006, at 09:33, Jeroen Frijters wrote:

> Andrew John Hughes wrote:
>> This patch puts a bit more into thread state handling.
>
> I apologize for being blunt, but this patch is unacceptable. It  
> doesn't
> cover all cases, it's incorrect and inefficient.
>
Yes, I acknowledged this in my comments on the patch.  You can't cover
all state changes in the Thread code, so it won't cover all cases.

Based on your comments, it seems you agree with my original intuition
of making this a native VM call (by default) in the majority of  
cases, but
efficiency would seem to be fairly VM specific.

I suppose I was aiming on lightening the load on the VM interface, as
I seem to be throwing tons down there lately.  I'd be interested in  
comments
from other VM coders as to what they feel is best.

I'll revert to something similar this evening, but the real test will  
be when I add
some of this to gcj.

> I really think it's best to leave determining the thread state up to
> VMThread, except of course that there still needs to be support for
> threads that don't yet (or no longer) have a VMThread.
>
> Below is a patch that shows what I think getState should look like.
>
> Regards,
> Jeroen
>
> Index: java/lang/Thread.java
> ===================================================================
> RCS file: /cvsroot/classpath/classpath/java/lang/Thread.java,v
> retrieving revision 1.26
> diff -u -r1.26 Thread.java
> --- java/lang/Thread.java	27 Jun 2006 21:57:29 -0000	1.26
> +++ java/lang/Thread.java	29 Jun 2006 08:30:11 -0000
> @@ -1239,7 +1239,11 @@
>    public String getState()
>    {
>      VMThread t = vmThread;
> -    return t == null ? null : t.getState();
> +    if (t != null)
> +      return t.getState();
> +    if (group == null)
> +      return "TERMINATED";
> +    return "NEW";
>    }
>
>    /**
>




More information about the Classpath-patches mailing list