I think the better way is close output channel immediately when any of input channels closed.
ClojureClojureScript