code: func newProcess(tf TeardownFunc) *process {
  	return &process{
  		teardown: tf,
  		closed:   make(chan struct{}),
  		closing:  make(chan struct{}),
  		waitfors: make(map[*processLink]struct{}),
  		children: make(map[*processLink]struct{}),
  	}
  }
docs: // newProcess constructs and returns a Process.
  // It will call tf TeardownFunc exactly once:
  //  **after** all children have fully Closed,
  //  **after** entering <-Closing(), and
  //  **before** <-Closed().