This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2024-01-18
Channels
- # announcements (4)
- # babashka (13)
- # beginners (8)
- # chlorine-clover (1)
- # cider (5)
- # clj-http (12)
- # clojure (157)
- # clojure-dev (14)
- # clojure-europe (26)
- # clojure-nl (2)
- # clojure-norway (69)
- # clojure-uk (6)
- # clojuredesign-podcast (21)
- # clojurescript (7)
- # core-async (4)
- # datomic (170)
- # editors (1)
- # hyperfiddle (45)
- # java (7)
- # joyride (1)
- # leiningen (43)
- # lsp (7)
- # malli (24)
- # music (1)
- # off-topic (22)
- # pathom (16)
- # portal (31)
- # re-frame (1)
- # releases (1)
- # shadow-cljs (36)
- # squint (4)
Flow Storm lets you debug go blocks and inspect their state. A bit haphazard but it works
👍 1
😲 2
I have got some info out of core-async in the past by either grabbing the stack traces
(for [[thread stack] (sort-by #(.getName (key %)) (Thread/getAllStackTraces))
:when (str/starts-with? (.getName thread) "async-")]
(let [top-frame (first stack)]
[(str (.getState thread))
(.getName thread)
(count stack)
(str (.getSimpleName (Class/forName (.getClassName ^StackTraceElement top-frame)))
"."
(.getMethodName ^StackTraceElement top-frame))]))
or by introspecting the buffers passed into the channels (which are countable iirc) to see which ones are full / empty. As for the go routines themselves, I've not pushed hard into those. I imagine that print statements or setting values into volatiles might be some ways to get information out of them, but of course it may (slightly) affect how the system runs.