code: func NewPipeConns() *PipeConns {
  	ch1 := make(chan *byteBuffer, 4)
  	ch2 := make(chan *byteBuffer, 4)
  
  	pc := &PipeConns{
  		stopCh: make(chan struct{}),
  	}
  	pc.c1.rCh = ch1
  	pc.c1.wCh = ch2
  	pc.c2.rCh = ch2
  	pc.c2.wCh = ch1
  	pc.c1.pc = pc
  	pc.c2.pc = pc
  	return pc
  }
docs: // NewPipeConns returns new bi-directional connection pipe.