diff options
author | kpayson64 <kpayson@google.com> | 2018-05-15 13:52:28 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-15 13:52:28 -0700 |
commit | 5fc081acd101d345786ebb072a434f6efacfe0a1 (patch) | |
tree | bea5a4b0fc63c42c85de96cc66b989eef7374e4f /src/core/lib/iomgr/exec_ctx.h | |
parent | 679a7b1e931933e704a665a00949a411e4ba0702 (diff) | |
parent | 40c93b6387571121979428035f2376e1e8f010d6 (diff) |
Merge pull request #14647 from kpayson64/fork_exec_ctx_check
Add exec_ctx check to fork handlers
Diffstat (limited to 'src/core/lib/iomgr/exec_ctx.h')
-rw-r--r-- | src/core/lib/iomgr/exec_ctx.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/core/lib/iomgr/exec_ctx.h b/src/core/lib/iomgr/exec_ctx.h index a8c709daa3..8823dc4b51 100644 --- a/src/core/lib/iomgr/exec_ctx.h +++ b/src/core/lib/iomgr/exec_ctx.h @@ -26,6 +26,7 @@ #include <grpc/support/log.h> #include "src/core/lib/gpr/tls.h" +#include "src/core/lib/gprpp/fork.h" #include "src/core/lib/iomgr/closure.h" typedef gpr_atm grpc_millis; @@ -85,16 +86,23 @@ class ExecCtx { public: /** Default Constructor */ - ExecCtx() : flags_(GRPC_EXEC_CTX_FLAG_IS_FINISHED) { Set(this); } + ExecCtx() : flags_(GRPC_EXEC_CTX_FLAG_IS_FINISHED) { + grpc_core::Fork::IncExecCtxCount(); + Set(this); + } /** Parameterised Constructor */ - ExecCtx(uintptr_t fl) : flags_(fl) { Set(this); } + ExecCtx(uintptr_t fl) : flags_(fl) { + grpc_core::Fork::IncExecCtxCount(); + Set(this); + } /** Destructor */ virtual ~ExecCtx() { flags_ |= GRPC_EXEC_CTX_FLAG_IS_FINISHED; Flush(); Set(last_exec_ctx_); + grpc_core::Fork::DecExecCtxCount(); } /** Disallow copy and assignment operators */ |