context/context.go
func WithProcessClosed(ctx context.Context, p goprocess.Process) context.Context {
	ctx, cancel := context.WithCancel(ctx)
	go func() {
		<-p.Closed()
		cancel()
	}()
	return ctx
}
func WithProcessClosed(ctx context.Context, p goprocess.Process) context.Context {
	ctx, cancel := context.WithCancel(ctx)
	go func() {
		<-p.Closed()
		cancel()
	}()
	return ctx
}
func WithProcessClosed ( ctx context . Context , p goprocess . Process ) context . Context { ctx , cancel := context . WithCancel ( ctx ) go func ( ) { <- p . Closed ( ) cancel ( ) } ( ) return ctx }
// WithProcessClosed returns a context.Context that is cancelled
// after Process p is Closed. It is the equivalent of:
//
//   func WithProcessClosed(ctx context.Context, p goprocess.Process) context.Context {
//     ctx, cancel := context.WithCancel(ctx)
//     go func() {
//       <-p.Closed()
//       cancel()
//     }()
//     return ctx
//   }
//
WithProcessClosed returns a context . Context that is cancelled after Process p is Closed . It is the equivalent of : func WithProcessClosed ( ctx context . Context p goprocess . Process ) context . Context { ctx cancel : = context . WithCancel ( ctx ) go func () { < - p . Closed () cancel () } () return ctx }