diff options
author | Mark Wielaard <mark@gcc.gnu.org> | 2006-01-17 18:09:40 +0000 |
---|---|---|
committer | Mark Wielaard <mark@gcc.gnu.org> | 2006-01-17 18:09:40 +0000 |
commit | 2127637945ea6b763966398130e0770fa993c860 (patch) | |
tree | c976ca91e3ef0bda3b34b37c0195145638d8d08e /libjava/classpath/java/lang/InheritableThreadLocal.java | |
parent | bcb36c3e02e3bd2843aad1b9888513dfb5d6e337 (diff) | |
download | gcc-2127637945ea6b763966398130e0770fa993c860.tar.gz |
Imported GNU Classpath 0.20
Imported GNU Classpath 0.20
* Makefile.am (AM_CPPFLAGS): Add classpath/include.
* java/nio/charset/spi/CharsetProvider.java: New override file.
* java/security/Security.java: Likewise.
* sources.am: Regenerated.
* Makefile.in: Likewise.
From-SVN: r109831
Diffstat (limited to 'libjava/classpath/java/lang/InheritableThreadLocal.java')
-rw-r--r-- | libjava/classpath/java/lang/InheritableThreadLocal.java | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/libjava/classpath/java/lang/InheritableThreadLocal.java b/libjava/classpath/java/lang/InheritableThreadLocal.java index 69ff6138dc6..b9c7624ef44 100644 --- a/libjava/classpath/java/lang/InheritableThreadLocal.java +++ b/libjava/classpath/java/lang/InheritableThreadLocal.java @@ -1,5 +1,5 @@ /* InheritableThreadLocal -- a ThreadLocal which inherits values across threads - Copyright (C) 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -37,8 +37,9 @@ exception statement from your version. */ package java.lang; +import gnu.java.util.WeakIdentityHashMap; + import java.util.Iterator; -import java.util.WeakHashMap; /** * A ThreadLocal whose value is inherited by child Threads. The value of the @@ -98,15 +99,15 @@ public class InheritableThreadLocal extends ThreadLocal Iterator keys = parentThread.locals.keySet().iterator(); while (keys.hasNext()) { - Key key = (Key)keys.next(); - if (key.get() instanceof InheritableThreadLocal) + Object key = keys.next(); + if (key instanceof InheritableThreadLocal) { - InheritableThreadLocal local = (InheritableThreadLocal)key.get(); + InheritableThreadLocal local = (InheritableThreadLocal)key; Object parentValue = parentThread.locals.get(key); Object childValue = local.childValue(parentValue == NULL ? null : parentValue); if (childThread.locals == null) - childThread.locals = new WeakHashMap(); + childThread.locals = new WeakIdentityHashMap(); childThread.locals.put(key, (childValue == null ? NULL : childValue)); } |