Создайте сервер grp c как неблокирующий - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть метод startServer(), который запускает простой cpp grp c сервер.

Я хочу сделать server->Wait() вызов неблокирующим, без обработки каких-либо дополнительных затрат на поддержание завершения очередь или обработка вызовов RP C.

Я покопался в асин * аромате c сервера grp c, но не нашел ни одного простого примера, чтобы сделать это без добавления дополнительных издержек. Есть ли простой / простой способ сделать эту функцию неблокируемой, кроме запуска ее в отдельном потоке?

void GrpcIface::startServer() {
    std::string address("0.0.0.0:5000");
    GrpcIface service;
    grpc::ServerBuilder builder;
    builder.AddListeningPort(address, grpc::InsecureServerCredentials());
    builder.RegisterService(&service);    
    std::unique_ptr<grpc::Server> server(builder.BuildAndStart());
    std::cout << "GrpcIface :: Server listening on port: " << address << std::endl;
    server->Wait();
}
...