[cp-patches] FYI: Handle thread state

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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";
>    }
>
>    /**
>



[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux