From 1066534db4cf27c110f1c817b1032f20d50ab7bf Mon Sep 17 00:00:00 2001 From: Rich Hickey Date: Thu, 16 Jul 2009 17:08:43 -0400 Subject: added Var.getThreadBindings --- src/jvm/clojure/lang/Var.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src') 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) { -- cgit v1.2.3-18-g5258