diff options
author | Andrew Haley <aph@redhat.com> | 2006-10-13 12:53:36 +0000 |
---|---|---|
committer | Andrew Haley <aph@redhat.com> | 2006-10-13 12:53:36 +0000 |
commit | 81d174387ba4c17194f7e45bba6d5522dfddf481 (patch) | |
tree | 29c8b84d1d10ec914eb6fb0512dddbc6effe929f /libjava/java/lang/ThreadLocal.java | |
parent | 53cad73923f715fea760022380abb07c6c9cc816 (diff) |
2006-10-13 Andrew Haley <aph@redhat.com>gcj/gcj-tls-experimental-branch
* java-gimplify.c: Revert last changes.
* java-tree.h: Likewise.
* jcf-parse.c: Likewise.
* parse.y: Likewise.
* class.c: Likewise.
2006-10-12 Andrew Haley <aph@redhat.com>
* java/lang/natThreadLocal.cc: New file.
* java/lang/ThreadLocal.java: Rewrite to use native TLS.
* Makefile.am: Add java/lang/natThreadLocal.cc.
* sources.am: Move classpath/java/lang/ThreadLocal.java to
java/lang/ThreadLocal.java.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcj/gcj-tls-experimental-branch@117693 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/ThreadLocal.java')
-rw-r--r-- | libjava/java/lang/ThreadLocal.java | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/libjava/java/lang/ThreadLocal.java b/libjava/java/lang/ThreadLocal.java index cd6276f5d7d..644c93b67e4 100644 --- a/libjava/java/lang/ThreadLocal.java +++ b/libjava/java/lang/ThreadLocal.java @@ -100,6 +100,7 @@ public class ThreadLocal */ public ThreadLocal() { + constructNative(); } /** @@ -125,7 +126,7 @@ public class ThreadLocal */ public native Object get(); - private final Object slowGet() + private final Object internalGet() { Map map = Thread.getThreadLocals(); // Note that we don't have to synchronize, as only this thread will @@ -149,7 +150,7 @@ public class ThreadLocal */ public native void set(Object value); - private final void slowSet(Object value) + private final void internalSet(Object value) { Map map = Thread.getThreadLocals(); // Note that we don't have to synchronize, as only this thread will @@ -164,27 +165,15 @@ public class ThreadLocal */ public native void remove(); - private final void slowRemove() + private final void internalRemove() { Map map = Thread.getThreadLocals(); map.remove(this); } - private final void setTLS(gnu.gcj.RawData p) - { - synchronized (sentinel) - { - if (counter == 0) - // We've run out of unique TLS IDs. Fall back to using slow - // TLS. - return; - id = counter++; - TLSPointer = p; - } - } + protected native void finalize () throws Throwable; - static private long counter = 1; + private native void constructNative(); private gnu.gcj.RawData TLSPointer; - private long id; } |