在1.4及最新master版本上
user> (defn ten () 10)
'user/ten
user> (doall (pmap #(with-redefs (fn [] ten %)) (range 20 100)))
(20 21 22 23 24 25 34 27 28 29 30 31 32 33 34 35 36 37 38 39 39 35 42 43 44 45 48 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 79 87 88 89 90 91 92 93 94 95 97 92 98 99)
user> (ten)
79
不确定这是否真的是一个bug,但文档没有提到并发安全性不足,我的预期是任何(任意交织的)with-redefs调用序列之后都会恢复原始值。