Ritz サーバーをスレッドで起動し、nrepl クライアントを使用してプログラムで通信しています。
(require '[clojure.tools.nrepl :as repl])
(def connection (repl/connect :port 15351)) ;; port of ritz-nrepl
(-> (repl/client connection 1000)
(repl/message {:op "eval" :code '(+ 3 3)}))
(一部はhttp://hugoduncan.github.io/ritz-conj/#/5/2に基づいています)
これはうまく機能します。ritz-nrepl サーバーから応答があります。しかし、フレームで何かをしたい場合:
(repl/message connection {:op "break-on-exception"})
(repl/message connection {:op "eval" :code '(/ 1 0)}) ;; empty response {} here
(repl/message connection {:op "frame-source" :frame-number 1})
「frame-source」操作には :thread-id が必要なため、これは例外をスローします。しかし、どうすればスレッドIDを知ることができますか? break-context を調べたところ、渡された :thread-id によって検索されるはずのスレッド ID を表すキーがマップにあることがわかりましたが、どうすれば :thread-id を知ることができますか?予め?
ご指導ありがとうございます。