Skip to content
Browse files

don't rely on softref queue, explicitly remove dead entry when found,…

… fixes #444
  • Loading branch information...
1 parent cc8372f commit 167a73857a746e8dbeeb6d9ea8f99083aca7dc69 @richhickey richhickey committed Sep 28, 2010
Showing with 3 additions and 0 deletions.
  1. +2 −0 src/jvm/clojure/lang/DynamicClassLoader.java
  2. +1 −0 src/jvm/clojure/lang/Keyword.java
View
2 src/jvm/clojure/lang/DynamicClassLoader.java
@@ -54,6 +54,8 @@ public Class defineClass(String name, byte[] bytes, Object srcForm){
Class c = cr.get();
if(c != null)
return c;
+ else
+ classCache.remove(name, cr);
}
return super.findClass(name);
}
View
1 src/jvm/clojure/lang/Keyword.java
@@ -36,6 +36,7 @@ public static Keyword intern(Symbol sym){
if(existingk != null)
return existingk;
//entry died in the interim, do over
+ table.remove(sym, existingRef);
return intern(sym);
}

0 comments on commit 167a738

Please sign in to comment.
Something went wrong with that request. Please try again.