// +build ignore,OMIT

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func cleanup() {
}

func main() {
// START1 OMIT
	quit := make(chan string) // HL
	c := boring("Joe", quit) // HL
	for i := rand.Intn(10); i >= 0; i-- { fmt.Println(<-c) }
	quit <- "Bye!" // HL
	fmt.Printf("Joe says: %q\n", <-quit) // HL
// STOP1 OMIT
}

func boring(msg string, quit chan string) <-chan string {
	c := make(chan string) // HL
	go func() {
		for i := 0; ; i++ {
			time.Sleep(time.Duration(rand.Intn(1e3)) * time.Millisecond)
// START2 OMIT
			select {
			case c <- fmt.Sprintf("%s: %d", msg, i):
				// do nothing
			case <-quit: // HL
				cleanup()
				quit <- "See you!" // HL
				return
			}
// STOP2 OMIT
		}
	}()
	return c
}
