summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2009-07-16 17:08:43 -0400
committerRich Hickey <richhickey@gmail.com>2009-07-16 17:08:43 -0400
commit1066534db4cf27c110f1c817b1032f20d50ab7bf (patch)
treed628a991689c2303196acf9d605e000c6119d490
parent12888faab8f5c7bc13da5a8f506c2a594c48500c (diff)
added Var.getThreadBindings
-rw-r--r--src/jvm/clojure/lang/Var.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/jvm/clojure/lang/Var.java b/src/jvm/clojure/lang/Var.java
index 598a5785..e9286c36 100644
--- a/src/jvm/clojure/lang/Var.java
+++ b/src/jvm/clojure/lang/Var.java
@@ -309,6 +309,19 @@ public static void releaseThreadBindings(){
dvals.set(null);
}
+public static Associative getThreadBindings(){
+ Frame f = dvals.get();
+ IPersistentMap ret = PersistentHashMap.EMPTY;
+ for(ISeq bs = f.bindings.seq(); bs != null; bs = bs.next())
+ {
+ IMapEntry e = (IMapEntry) bs.first();
+ Var v = (Var) e.key();
+ Box b = (Box) e.val();
+ ret = ret.assoc(v, b.val);
+ }
+ return ret;
+}
+
final Box getThreadBinding(){
if(count.get() > 0)
{