aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/ThreadLocal.java
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>2006-10-13 12:53:36 +0000
committerAndrew Haley <aph@redhat.com>2006-10-13 12:53:36 +0000
commit81d174387ba4c17194f7e45bba6d5522dfddf481 (patch)
tree29c8b84d1d10ec914eb6fb0512dddbc6effe929f /libjava/java/lang/ThreadLocal.java
parent53cad73923f715fea760022380abb07c6c9cc816 (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.java23
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;
}