### ### examples/select2.janet ### ### Mix reads and writes in select. ### (def c1 (ev/chan 40)) (def c2 (ev/chan 40)) (def c3 (ev/chan 40)) (def c4 (ev/chan 40)) (def c5 (ev/chan 4)) (defn worker [c n x] (forever (ev/sleep n) (ev/give c x))) (defn writer-worker [c] (forever (ev/sleep 0.2) (print "writing " (ev/take c)))) (ev/call worker c1 1 :item1) (ev/sleep 0.2) (ev/call worker c2 1 :item2) (ev/sleep 0.1) (ev/call worker c3 1 :item3) (ev/sleep 0.2) (ev/call worker c4 1 :item4) (ev/sleep 0.1) (ev/call worker c4 1 :item5) (ev/call writer-worker c5) (forever (pp (ev/rselect c1 c2 c3 c4 [c5 :thing])))