diff --git a/src/core/lib/gprpp/work_serializer.cc b/src/core/lib/gprpp/work_serializer.cc index 067ea8852487c..27d212bb596b0 100644 --- a/src/core/lib/gprpp/work_serializer.cc +++ b/src/core/lib/gprpp/work_serializer.cc @@ -119,6 +119,7 @@ void WorkSerializer::WorkSerializerImpl::Run(std::function callback, gpr_log(GPR_INFO, " Executing immediately"); } callback(); + callback = nullptr; // Delete while still holding WorkSerializer. DrainQueueOwned(); #ifndef NDEBUG current_thread_ = std::thread::id();