From: jzhou Date: Wed, 21 Mar 2012 12:17:41 +0000 (+0000) Subject: Implement Thread.getThreadLocals() and Thread.currentThread() in MGC version X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=4f14d8d6bc422295a297396b7174cf2d87de04a1;p=IRC.git Implement Thread.getThreadLocals() and Thread.currentThread() in MGC version --- diff --git a/Robust/src/ClassLibrary/MGC/Thread.java b/Robust/src/ClassLibrary/MGC/Thread.java index 2d738b3d..55653077 100644 --- a/Robust/src/ClassLibrary/MGC/Thread.java +++ b/Robust/src/ClassLibrary/MGC/Thread.java @@ -5,12 +5,14 @@ public class Thread implements Runnable { private boolean daemon; private long threadId; String name; + final ThreadLocalMap locals; public Thread(){ finished = false; target = null; daemon = false; threadId = Thread.id++; + locals = new ThreadLocalMap(); } public long getId() @@ -21,6 +23,9 @@ public class Thread implements Runnable { public Thread(Runnable r) { finished = false; target = r; + daemon = false; + threadId = Thread.id++; + locals = new ThreadLocalMap(); } public Thread(Runnable r, String n) @@ -28,6 +33,9 @@ public class Thread implements Runnable { finished = false; target = r; name = n; + daemon = false; + threadId = Thread.id++; + locals = new ThreadLocalMap(); } public void start() { @@ -62,7 +70,9 @@ public class Thread implements Runnable { return !this.finished; } - public native ThreadLocalMap getThreadLocals(); + public static ThreadLocalMap getThreadLocals() { + return currentThread().locals; + } public final synchronized void setDaemon(boolean daemon) { /*if (vmThread != null) @@ -71,15 +81,11 @@ public class Thread implements Runnable { this.daemon = daemon; } - public static Thread currentThread() - { - System.out.println("Unimplemented Thread.currentThread()!"); - return null; - } + public native static Thread currentThread(); - public static Map getAllStackTraces() { + /*public static Map getAllStackTraces() { System.out.println("Unimplemented Thread.getAllStackTraces()"); return new HashMap(); - } + }*/ }