Skip to content
Snippets Groups Projects
Commit cfa18475 authored by kpayson64's avatar kpayson64 Committed by GitHub
Browse files

Merge pull request #7918 from y-zeng/server_builder

Add ServerBuilderPlugin::UpdateChannelArguments
parents 29b75b13 11d3c8f3
No related branches found
No related tags found
No related merge requests found
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
namespace grpc { namespace grpc {
class ServerInitializer; class ServerInitializer;
class ChannelArguments;
class ServerBuilderPlugin { class ServerBuilderPlugin {
public: public:
...@@ -58,6 +59,10 @@ class ServerBuilderPlugin { ...@@ -58,6 +59,10 @@ class ServerBuilderPlugin {
// ServerBuilderOption::UpdatePlugins // ServerBuilderOption::UpdatePlugins
virtual void ChangeArguments(const grpc::string& name, void* value) = 0; virtual void ChangeArguments(const grpc::string& name, void* value) = 0;
// UpdateChannelArguments will be called in ServerBuilder::BuildAndStart(),
// before the Server instance is created.
virtual void UpdateChannelArguments(ChannelArguments* args) {}
virtual bool has_sync_methods() const { return false; } virtual bool has_sync_methods() const { return false; }
virtual bool has_async_methods() const { return false; } virtual bool has_async_methods() const { return false; }
}; };
......
...@@ -153,14 +153,12 @@ std::unique_ptr<Server> ServerBuilder::BuildAndStart() { ...@@ -153,14 +153,12 @@ std::unique_ptr<Server> ServerBuilder::BuildAndStart() {
(*option)->UpdateArguments(&args); (*option)->UpdateArguments(&args);
(*option)->UpdatePlugins(&plugins_); (*option)->UpdatePlugins(&plugins_);
} }
if (!thread_pool) { for (auto plugin = plugins_.begin(); plugin != plugins_.end(); plugin++) {
for (auto plugin = plugins_.begin(); plugin != plugins_.end(); plugin++) { if (!thread_pool && (*plugin)->has_sync_methods()) {
if ((*plugin)->has_sync_methods()) { thread_pool.reset(CreateDefaultThreadPool());
thread_pool.reset(CreateDefaultThreadPool()); has_sync_methods = true;
has_sync_methods = true;
break;
}
} }
(*plugin)->UpdateChannelArguments(&args);
} }
if (max_message_size_ > 0) { if (max_message_size_ > 0) {
args.SetInt(GRPC_ARG_MAX_MESSAGE_LENGTH, max_message_size_); args.SetInt(GRPC_ARG_MAX_MESSAGE_LENGTH, max_message_size_);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment