aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/grpcpp/resource_quota.h
diff options
context:
space:
mode:
authorGravatar Sree Kuchibhotla <sreecha@users.noreply.github.com>2018-08-01 11:22:40 -0700
committerGravatar GitHub <noreply@github.com>2018-08-01 11:22:40 -0700
commitbdd13cb0aef7d3f6dbc467148b4b3158485359eb (patch)
treed5e1b9213c2ce5b8f2757bb277e1f612d3cf1af7 /include/grpcpp/resource_quota.h
parent92fd2620ab03c438fdeab23400cb6f31f5ba7816 (diff)
Revert "Revert "Restrict the number of threads in C++ sync server""
Diffstat (limited to 'include/grpcpp/resource_quota.h')
-rw-r--r--include/grpcpp/resource_quota.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/include/grpcpp/resource_quota.h b/include/grpcpp/resource_quota.h
index 554437a40d..50bd1cb849 100644
--- a/include/grpcpp/resource_quota.h
+++ b/include/grpcpp/resource_quota.h
@@ -26,10 +26,10 @@ struct grpc_resource_quota;
namespace grpc {
-/// ResourceQuota represents a bound on memory usage by the gRPC library.
-/// A ResourceQuota can be attached to a server (via \a ServerBuilder),
+/// ResourceQuota represents a bound on memory and thread usage by the gRPC
+/// library. A ResourceQuota can be attached to a server (via \a ServerBuilder),
/// or a client channel (via \a ChannelArguments).
-/// gRPC will attempt to keep memory used by all attached entities
+/// gRPC will attempt to keep memory and threads used by all attached entities
/// below the ResourceQuota bound.
class ResourceQuota final : private GrpcLibraryCodegen {
public:
@@ -44,6 +44,16 @@ class ResourceQuota final : private GrpcLibraryCodegen {
/// No time bound is given for this to occur however.
ResourceQuota& Resize(size_t new_size);
+ /// Set the max number of threads that can be allocated from this
+ /// ResourceQuota object.
+ ///
+ /// If the new_max_threads value is smaller than the current value, no new
+ /// threads are allocated until the number of active threads fall below
+ /// new_max_threads. There is no time bound on when this may happen i.e none
+ /// of the current threads are forcefully destroyed and all threads run their
+ /// normal course.
+ ResourceQuota& SetMaxThreads(int new_max_threads);
+
grpc_resource_quota* c_resource_quota() const { return impl_; }
private: