Slide 30
Slide 30 text
ch := make(chan string)
f.v2GetChan <- ch
return <-ch
}
func (f *Foo) SetV2(v string) {
f.v2SetChan <- v
}
func (f *Foo) Dispose() {
close(f.finChan)
}
func NewFoo() *Foo {
f := &Foo{
v1: 0,
v2: "",
finChan: make(chan struct{}),
v1GetChan: make(chan chan int),
v1SetChan: make(chan int),
v2GetChan: make(chan chan string),
v2SetChan: make(chan string),
}
go func() {
outer:
for {
select {
case <-f.finChan:
break outer
case c := <-f.v1GetChan:
c <- f.v1
case v := <-f.v1SetChan: