func()

in plugin/plugin.go [56:88]


func (m *PluginManager) Start() (*grpc.Server, <-chan error) {
	errCh := make(chan error, 1)
	sendError := func(err error) {
		defer close(errCh)
		select {
		case errCh <- err:
		default:
		}
	}

	if err := m.cleanSockFile(); err != nil {
		sendError(fmt.Errorf("failed to cleanup socket file: %w", err))
		return nil, errCh
	}

	listener, err := net.Listen(netProtocol, m.unixSocketFilePath)
	if err != nil {
		sendError(fmt.Errorf("failed to create listener: %w", err))
		return nil, errCh
	}
	m.Listener = listener
	glog.Infof("Listening on unix domain socket: %s", m.unixSocketFilePath)

	m.server = grpc.NewServer()
	m.plugin.Register(m.server)

	go func() {
		defer m.cleanSockFile()
		sendError(m.server.Serve(m.Listener))
	}()

	return m.server, errCh
}