4. select go func(x *Daemon) { defer func() { x.WaitGroup.Done() emon %s semon %s received commandn") go doCommand( x, withDeadline( x.Ctx, time.Now().Add(4*time.Second), ), cmd.Cmd, cmd.Arg, ) case <-x.Ctx.Done(): break loop } } }(x) 5. select の実装はどうなっているのか ? case x=<-❶ case x->❷ case x=<-❸ case x=<-❹go