code: func (l *PipeListener) Close() error {
  	l.mu.Lock()
  	defer l.mu.Unlock()
  
  	if l.closed {
  		return nil
  	}
  	l.closed = true
  	if l.handle != 0 {
  		err := disconnectNamedPipe(l.handle)
  		if err != nil {
  			return err
  		}
  		err = syscall.CloseHandle(l.handle)
  		if err != nil {
  			return err
  		}
  		l.handle = 0
  	}
  	if l.acceptOverlapped != nil && l.acceptHandle != 0 {
  		// Cancel the pending IO. This call does not block, so it is safe
  		// to hold onto the mutex above.
  		if err := cancelIoEx(l.acceptHandle, l.acceptOverlapped); err != nil {
  			return err
  		}
  		err := syscall.CloseHandle(l.acceptOverlapped.HEvent)
  		if err != nil {
  			return err
  		}
  		l.acceptOverlapped.HEvent = 0
  		err = syscall.CloseHandle(l.acceptHandle)
  		if err != nil {
  			return err
  		}
  		l.acceptHandle = 0
  	}
  	return nil
  }
docs: // Close stops listening on the address.
  // Already Accepted connections are not closed.