code: func (f *fifo) SyscallConn() (syscall.RawConn, error) {
  	// deterministic check for closed
  	select {
  	case <-f.closed:
  		return nil, errors.New("fifo closed")
  	default:
  	}
  
  	select {
  	case <-f.closed:
  		return nil, errors.New("fifo closed")
  	case <-f.opened:
  		return f.file.SyscallConn()
  	default:
  	}
  
  	// Not opened and not closed, this means open is non-blocking AND it's not open yet
  	// Use rawConn to deal with non-blocking open.
  	rc := &rawConn{f: f, ready: make(chan struct{})}
  	go func() {
  		select {
  		case <-f.closed:
  			return
  		case <-f.opened:
  			rc.raw, rc.err = f.file.SyscallConn()
  			close(rc.ready)
  		}
  	}()
  
  	return rc, nil
  }
docs: // SyscallConn provides raw access to the fifo's underlying filedescrptor.
  // See syscall.Conn for guarentees provided by this interface.