(def channels (seq [:repeat 5] (ev/chan 4))) (defn writer [c] (for i 0 3 (def item (string i ":" (mod (hash c) 999))) (ev/sleep 0.1) (print "writer giving item " item " to " c "...") (ev/give c item)) (print "Done!")) (defn reader [name] (forever (def [_ c x] (ev/rselect ;channels)) (print "reader " name " got " x " from " c))) # Readers (each letter [:a :b :c :d :e :f :g] (ev/call reader letter)) # Writers (each c channels (ev/call writer c))