You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			28 lines
		
	
	
		
			647 B
		
	
	
	
		
			Cheetah
		
	
			
		
		
	
	
			28 lines
		
	
	
		
			647 B
		
	
	
	
		
			Cheetah
		
	
| {{.Label}}:
 | |
| switch timeout{{.Sfx}} :=  z.EncBasicHandle().ChanRecvTimeout; {
 | |
| case timeout{{.Sfx}} == 0: // only consume available
 | |
| 	for {
 | |
| 		select {
 | |
| 		case b{{.Sfx}} := <-{{.Chan}}:
 | |
| 			{{ .Slice }} = append({{.Slice}}, b{{.Sfx}})
 | |
| 		default:
 | |
| 			break {{.Label}}
 | |
| 		}
 | |
| 	}
 | |
| case timeout{{.Sfx}} > 0: // consume until timeout
 | |
| 	tt{{.Sfx}} := time.NewTimer(timeout{{.Sfx}})
 | |
| 	for {
 | |
| 		select {
 | |
| 		case b{{.Sfx}} := <-{{.Chan}}:
 | |
| 			{{.Slice}} = append({{.Slice}}, b{{.Sfx}})
 | |
| 		case <-tt{{.Sfx}}.C:
 | |
| 			// close(tt.C)
 | |
| 			break {{.Label}}
 | |
| 		}
 | |
| 	}
 | |
| default: // consume until close
 | |
| 	for b{{.Sfx}} := range {{.Chan}} {
 | |
| 		{{.Slice}} = append({{.Slice}}, b{{.Sfx}})
 | |
| 	}
 | |
| }
 |