code: func (pl *processLink) ChildClosing() <-chan struct{} {
  	// grab a hold of it, and unlock, as .Closing may block.
  	pl.Lock()
  	child := pl.child
  	pl.Unlock()
  
  	if child == nil { // already closed? memory optimization.
  		return closedCh
  	}
  	return child.Closing()
  }
docs: // Closing returns whether the child is closing