1
我正在使用pr-str
來打印EDN以便與客戶端進行字符串和通信。遇到非常有趣的行爲,其中pr-str
還輸出混合到EDN字符串表示中的println
或clojure.tools.trace/trace
消息。這是什麼樣的字符串pr-str
輸出:pr-str還打印出跟蹤消息
(TRACE from-ds {:key "asdasf", :weight 0, :tag "1"} ; trace message
{:key "asdasf", :weight 0, :tag "1"}) ; the actual edn that should be the sole output
我似乎無法重現這個在REPL。
這是怎麼發生的?如何解決它?
'println' [有競爭條件](http://yellerapp.com/posts/2014-12-11-14-race-condition-in-clojure-println.html)? – 2015-04-06 11:09:00
'print'(和擴展名'println')沒有協調來防止重疊輸出,但是隻有當你的'pr-str'調用中的代碼正在創建輸出時,你纔會得到這個結果。查看我的答案瞭解更多詳情。 – noisesmith 2015-04-06 16:13:18