This is very helpful.
Initially, I tried:
(let [c (async/chan 2)]
(async/put! c 1)
(async/put! c 1)
(async/put! c 1))
and thought "oh, it's unbounded."
Then, after reading your message, I tried:
(let [c (async/chan 2)]
(doseq [x (range 2048)]
(async/put! c 1)))
and it's clear th
Channels consist of 3 "things"
1) pending put queue
2) pending take queue
3) buffer
What will happen is that the async/put! will be put into the pending put
queue and sit there until either the buffer has room, or a take handles the
put.
These pending operation queues can be seen as unbounded qu
Hi,
Let c be a channel that is neither dropping nor slidding.
Now, furthermore, let c be full.
Lastly, suppose (async/put! c ...) is executed.
Does the clojure async spec provide guarnatees on what happens?
Thanks!
--
--
You received this message because you are subscribed to the Go