blob: 4249588a3cf8d0302242dbd542a03eaf7a4aee69 [file] [log] [blame]
khenaidooffe076b2019-01-15 16:08:08 -05001{{.Label}}:
2switch timeout{{.Sfx}} := z.EncBasicHandle().ChanRecvTimeout; {
3case timeout{{.Sfx}} == 0: // only consume available
4 for {
5 select {
6 case b{{.Sfx}} := <-{{.Chan}}:
7 {{ .Slice }} = append({{.Slice}}, b{{.Sfx}})
8 default:
9 break {{.Label}}
10 }
11 }
12case timeout{{.Sfx}} > 0: // consume until timeout
13 tt{{.Sfx}} := time.NewTimer(timeout{{.Sfx}})
14 for {
15 select {
16 case b{{.Sfx}} := <-{{.Chan}}:
17 {{.Slice}} = append({{.Slice}}, b{{.Sfx}})
18 case <-tt{{.Sfx}}.C:
19 // close(tt.C)
20 break {{.Label}}
21 }
22 }
23default: // consume until close
24 for b{{.Sfx}} := range {{.Chan}} {
25 {{.Slice}} = append({{.Slice}}, b{{.Sfx}})
26 }
27}