context/context.go
func CloseAfterContext(p goprocess.Process, ctx context.Context) {
	if p == nil {
		panic("nil Process")
	}
	if ctx == nil {
		panic("nil Context")
	}

	// context.Background(). if ctx.Done() is nil, it will never be done.
	// we check for this to avoid wasting a goroutine forever.
	if ctx.Done() == nil {
		return
	}

	go func() {
		<-ctx.Done()
		p.Close()
	}()
}
func CloseAfterContext(p goprocess.Process, ctx context.Context) {
	if p == nil {
		panic("nil Process")
	}
	if ctx == nil {
		panic("nil Context")
	}

	// context.Background(). if ctx.Done() is nil, it will never be done.
	// we check for this to avoid wasting a goroutine forever.
	if ctx.Done() == nil {
		return
	}

	go func() {
		<-ctx.Done()
		p.Close()
	}()
}
func CloseAfterContext ( p goprocess . Process , ctx context . Context ) { if p == nil { panic ( " " ) } if ctx == nil { panic ( " " ) } // context.Background(). if ctx.Done() is nil, it will never be done. // we check for this to avoid wasting a goroutine forever. if ctx . Done ( ) == nil { return } go func ( ) { <- ctx . Done ( ) p . Close ( ) } ( ) }
// CloseAfterContext schedules the process to close after the given
// context is done. It is the equivalent of:
//
//   func CloseAfterContext(p goprocess.Process, ctx context.Context) {
//     go func() {
//       <-ctx.Done()
//       p.Close()
//     }()
//   }
//
CloseAfterContext schedules the process to close after the given context is done . It is the equivalent of : func CloseAfterContext ( p goprocess . Process ctx context . Context ) { go func () { < - ctx . Done () p . Close () } () }