context/context.go
func WithProcessClosing(ctx context.Context, p goprocess.Process) context.Context {
	ctx, cancel := context.WithCancel(ctx)
	go func() {
		<-p.Closing()
		cancel()
	}()
	return ctx
}
func WithProcessClosing(ctx context.Context, p goprocess.Process) context.Context {
	ctx, cancel := context.WithCancel(ctx)
	go func() {
		<-p.Closing()
		cancel()
	}()
	return ctx
}
func WithProcessClosing ( ctx context . Context , p goprocess . Process ) context . Context { ctx , cancel := context . WithCancel ( ctx ) go func ( ) { <- p . Closing ( ) cancel ( ) } ( ) return ctx }
// WithProcessClosing returns a context.Context derived from ctx that
// is cancelled as p is Closing (after: <-p.Closing()). It is simply:
//
//   func WithProcessClosing(ctx context.Context, p goprocess.Process) context.Context {
//     ctx, cancel := context.WithCancel(ctx)
//     go func() {
//       <-p.Closing()
//       cancel()
//     }()
//     return ctx
//   }
//
WithProcessClosing returns a context . Context derived from ctx that is cancelled as p is Closing ( after : < - p . Closing () ) . It is simply : func WithProcessClosing ( ctx context . Context p goprocess . Process ) context . Context { ctx cancel : = context . WithCancel ( ctx ) go func () { < - p . Closing () cancel () } () return ctx }