diff options
author | Jan Tattermusch <jtattermusch@google.com> | 2015-08-14 09:58:54 -0700 |
---|---|---|
committer | Jan Tattermusch <jtattermusch@google.com> | 2015-08-14 09:58:54 -0700 |
commit | d8fc8606740416b1cbe4d2f3754705b108fd2c5c (patch) | |
tree | 594a4bd709532261bfbe66b93faea4cc0d4421c7 /src/cpp/server/server_builder.cc | |
parent | 46e85b02cda4ad4d549e444b78d1e74a3021a9d9 (diff) | |
parent | 8d1c96f8bbfd6e78ce6264985d91f443d7619c2d (diff) |
Merge remote-tracking branch 'upstream/master' into csharp_upgrade_to_proto3
Diffstat (limited to 'src/cpp/server/server_builder.cc')
-rw-r--r-- | src/cpp/server/server_builder.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/cpp/server/server_builder.cc b/src/cpp/server/server_builder.cc index f723d4611a..09118879f4 100644 --- a/src/cpp/server/server_builder.cc +++ b/src/cpp/server/server_builder.cc @@ -38,6 +38,7 @@ #include <grpc++/impl/service_type.h> #include <grpc++/server.h> #include <grpc++/thread_pool_interface.h> +#include <grpc++/fixed_size_thread_pool.h> namespace grpc { @@ -100,10 +101,17 @@ std::unique_ptr<Server> ServerBuilder::BuildAndStart() { thread_pool_ = CreateDefaultThreadPool(); thread_pool_owned = true; } + // Async services only, create a thread pool to handle requests to unknown + // services. + if (!thread_pool_ && !generic_service_ && !async_services_.empty()) { + thread_pool_ = new FixedSizeThreadPool(1); + thread_pool_owned = true; + } std::unique_ptr<Server> server( new Server(thread_pool_, thread_pool_owned, max_message_size_)); for (auto cq = cqs_.begin(); cq != cqs_.end(); ++cq) { - grpc_server_register_completion_queue(server->server_, (*cq)->cq()); + grpc_server_register_completion_queue(server->server_, (*cq)->cq(), + nullptr); } for (auto service = services_.begin(); service != services_.end(); service++) { |