У меня есть метод 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();
}