Re:Fearless Concurrency: Clojure, Rust, Pony, Erlang and Dart
by jwr on Monday February 25, 2019 @05:58PM
(#19250317)
Well, they don't have "issues", they are simply not intended for I/O — but you can simply do your I/O processing in a (thread) block instead of a (go) block and use <!! instead of <!. The beauty of core.async channels is that one end of a channel can be used in a go block and another end in a thread block, and things will be fine. I use this a lot in practice.
Agents also have a fixed thread pool, and you should use send-off if you intend to do I/O.
Agents also have a fixed thread pool, and you should use send-off if you intend to do I/O.