diff options
Diffstat (limited to 'src/core/lib/slice/slice.cc')
-rw-r--r-- | src/core/lib/slice/slice.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/core/lib/slice/slice.cc b/src/core/lib/slice/slice.cc index 585b41cf91..419474129b 100644 --- a/src/core/lib/slice/slice.cc +++ b/src/core/lib/slice/slice.cc @@ -69,8 +69,12 @@ grpc_slice grpc_slice_ref(grpc_slice slice) { /* Public API */ void grpc_slice_unref(grpc_slice slice) { - grpc_core::ExecCtx exec_ctx; - grpc_slice_unref_internal(slice); + if (grpc_core::ExecCtx::Get() == nullptr) { + grpc_core::ExecCtx exec_ctx; + grpc_slice_unref_internal(slice); + } else { + grpc_slice_unref_internal(slice); + } } /* grpc_slice_from_static_string support structure - a refcount that does |