code: func (s *Select) NewReader(r io.Reader) (io.Reader, error) {
  	rr, ok := r.(readFder)
  	if !ok {
  		return nil, ErrNotFder
  	}
  	ret := &selectReader{
  		readFder: rr,
  		ready:    make(chan struct{}),
  		stop:     make(chan struct{}),
  	}
  	s.readers = append(s.readers, ret)
  	if _, err := s.controlPipeW.Write([]byte("newreader")); err != nil {
  		return nil, err
  	}
  	return ret, nil
  }
docs: // NewReader .