1 // run 2 3 // Copyright 2014 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 package main 8 9 func main() { 10 c := make(chan bool, 1) 11 ok := true 12 for i := 0; i < 12; i++ { 13 select { 14 case _, ok = <-c: 15 if i < 10 && !ok { 16 panic("BUG") 17 } 18 default: 19 } 20 if i < 10 && !ok { 21 panic("BUG") 22 } 23 if i >= 10 && ok { 24 close(c) 25 } 26 } 27 } 28