# How to do \`select\` on channels like go(\`alts\` in clojure)?

**URL:** https://discourse.julialang.org/t/how-to-do-select-on-channels-like-go-alts-in-clojure/30176
**Category:** Internals & Design
**Tags:** question
**Created:** [October 22, 2019, 2:45pm UTC](https://discourse.julialang.org/t/how-to-do-select-on-channels-like-go-alts-in-clojure/30176 "2019-10-22T14:45:35Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![isaactsang](https://avatars.discourse-cdn.com/v4/letter/i/54ee81/32.png) [@isaactsang](https://discourse.julialang.org/u/isaactsang)
#### Post date: [October 22, 2019, 2:45pm UTC](https://discourse.julialang.org/t/how-to-do-select-on-channels-like-go-alts-in-clojure/30176/1 "2019-10-22T14:45:35Z")

</div>

And then function `take!` should have a timeout parameter.

`take!(channel, timeout=1000)`

---

<div class="post-metadata">

### Author: ![ggggggggg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ggggggggg/32/265_2.png) [@ggggggggg](https://discourse.julialang.org/u/ggggggggg)
#### Post date: [October 22, 2019, 2:55pm UTC](https://discourse.julialang.org/t/how-to-do-select-on-channels-like-go-alts-in-clojure/30176/2 "2019-10-22T14:55:55Z")

</div>

package that implements a select macro: [https://github.com/NHDaly/Select.jl](https://github.com/NHDaly/Select.jl)  
PR to add that macro to julia: [https://github.com/JuliaLang/julia/issues/13763](https://github.com/JuliaLang/julia/issues/13763)

---

<div class="post-metadata">

### Author: ![isaactsang](https://avatars.discourse-cdn.com/v4/letter/i/54ee81/32.png) [@isaactsang](https://discourse.julialang.org/u/isaactsang)
#### Post date: [October 23, 2019, 4:14pm UTC](https://discourse.julialang.org/t/how-to-do-select-on-channels-like-go-alts-in-clojure/30176/3 "2019-10-23T16:14:25Z")

</div>

I more like Clojure’s syntax. like [this](https://github.com/JuliaLang/julia/issues/13763#issuecomment-545520624)
