On Wednesday, 25 January 2017 15:14:27 UTC+2, T L wrote:
>
> sometimes, I do want one case on a select block get selected even if there 
> are multiple unblocked cases.
> For example, I don't want the dataCh case is selected if the stopCh and 
> the timer channel are unblocked:
>
> select {
> case <- stopCh:
>     return
> case value := <-dataCh:
> }
>
> select {
> case <- time.After(time.Second):
>     return
> case dataCh <- value:
> }
>
> Is there a solution to satisfy my need currently?
>

type poller func() bool
var pollers []poller

pollers = append(pollers, func() bool {
select {
case <-priority:
// ...
default:
return false
}
return true
})

for {
for _, p := range pollers {
if p() {
break
}
}
}

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to