[cp-patches] FYI: Handle thread state
Andrew John Hughes
a.hughes at dcs.shef.ac.uk
Thu Jun 29 09:35:59 UTC 2006
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
> 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
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
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.
> 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