Make CreateThreadPool settable

pull/11693/head
ncteisen 8 years ago
parent 10bed24e8b
commit 30939f8854
  1. 2
      src/cpp/client/secure_credentials.cc
  2. 12
      src/cpp/server/create_default_thread_pool.cc
  3. 2
      src/cpp/server/secure_server_credentials.h
  4. 6
      src/cpp/server/thread_pool_interface.h

@ -207,7 +207,7 @@ void MetadataCredentialsPluginWrapper::InvokePlugin(
MetadataCredentialsPluginWrapper::MetadataCredentialsPluginWrapper(
std::unique_ptr<MetadataCredentialsPlugin> plugin)
: thread_pool_(CreateDefaultThreadPool()), plugin_(std::move(plugin)) {}
: thread_pool_(CreateThreadPool()), plugin_(std::move(plugin)) {}
std::shared_ptr<CallCredentials> MetadataCredentialsFromPlugin(
std::unique_ptr<MetadataCredentialsPlugin> plugin) {

@ -24,12 +24,22 @@
namespace grpc {
ThreadPoolInterface* CreateDefaultThreadPool() {
static ThreadPoolInterface* CreateDefaultThreadPool() {
int cores = gpr_cpu_num_cores();
if (!cores) cores = 4;
return new DynamicThreadPool(cores);
}
static CreateThreadPoolFunc g_ctp_impl = CreateDefaultThreadPool;
ThreadPoolInterface* CreateThreadPool() {
return g_ctp_impl();
}
void SetCreateThreadPool(CreateThreadPoolFunc func) {
g_ctp_impl = func;
}
} // namespace grpc
#endif // !GRPC_CUSTOM_DEFAULT_THREAD_POOL

@ -39,7 +39,7 @@ class AuthMetadataProcessorAyncWrapper final {
AuthMetadataProcessorAyncWrapper(
const std::shared_ptr<AuthMetadataProcessor>& processor)
: thread_pool_(CreateDefaultThreadPool()), processor_(processor) {}
: thread_pool_(CreateThreadPool()), processor_(processor) {}
private:
void InvokeProcessor(grpc_auth_context* context, const grpc_metadata* md,

@ -32,7 +32,11 @@ class ThreadPoolInterface {
virtual void Add(const std::function<void()>& callback) = 0;
};
ThreadPoolInterface* CreateDefaultThreadPool();
// Allows different codebases to use their own thread pool impls
typedef ThreadPoolInterface* (*CreateThreadPoolFunc)(void);
void SetCreateThreadPool(CreateThreadPoolFunc func);
ThreadPoolInterface* CreateThreadPool();
} // namespace grpc

Loading…
Cancel
Save