diff options
author | Rich Hickey <richhickey@gmail.com> | 2009-07-16 17:08:43 -0400 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2009-07-16 17:08:43 -0400 |
commit | 1066534db4cf27c110f1c817b1032f20d50ab7bf (patch) | |
tree | d628a991689c2303196acf9d605e000c6119d490 /src | |
parent | 12888faab8f5c7bc13da5a8f506c2a594c48500c (diff) |
added Var.getThreadBindings
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/Var.java | 13 |
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) { |