how to wait on multiple channels