I guess the interrupt doesn't really obliterate the fourth put attempt, and 
that put proceeds in background when you first take. 

On Wednesday, June 27, 2018 at 5:12:45 AM UTC+10, jonah wrote:
>
> Hi folks,
>
> It's been a while since I've used core.async. Documentation suggests that
>
> (chan n) 
>
> where n is a number creates a fixed size channel buffer supporting n 
> elements.
>
> The below clj repl session seems to indicate that I can put 4 items into a 
> 3-sized buffer:
>
> user=> (def c (async/chan 3))
> #'user/c
> user=> (async/>!! c :a)
> true
> user=> (async/>!! c :b)
> true
> user=> (async/>!! c :c)
> true
> user=> (async/>!! c :d)
> ;; correctly blocks, ctrl-c to break
> user=> (async/<!! c)
> :a
> user=> (async/<!! c)
> :b
> user=> (async/<!! c)
> :c
> ;; why do i get :d ? shouldn't it block?
> user=> (async/<!! c)
> :d
>
> This is with:
>
> [org.clojure/core.async "0.4.474"]
>
> Thanks,
>
> Jonah
>
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to