I have the requirement of being able to drain a channel, i.e. make sure that downstream processes all data currently being sent. One possible pattern is something like
for{ select{ case <-q.data: default: } } where the default branch could indicate that channel has been drained. My concern is, that this would create a busy loop on the default branch even when not trying to drain the channel. I could use an atomic for checking if work should be done in default (i.e. signal channel has been drained). Would that still busy-loop? Are there better patterns? Cheers, Andi -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/4887e28d-bcfb-4f49-9450-00e56e00be55n%40googlegroups.com.