From: jzhou <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();
-  }
+  }*/
 
 }