From 37c41084a53ebd0a783e23fc285bd897100656c2 Mon Sep 17 00:00:00 2001 From: Brian Hackett Date: Sat, 24 Jun 2023 03:27:00 -0700 Subject: [PATCH] Add diagnostics for mismatched queue cleanups (#763) --- base/task/sequence_manager/sequence_manager_impl.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/base/task/sequence_manager/sequence_manager_impl.cc b/base/task/sequence_manager/sequence_manager_impl.cc index c68b8d76791b03..8f04ee92621b7a 100644 --- a/base/task/sequence_manager/sequence_manager_impl.cc +++ b/base/task/sequence_manager/sequence_manager_impl.cc @@ -1137,17 +1137,24 @@ void SequenceManagerImpl::ReclaimMemory() { } void SequenceManagerImpl::CleanUpQueues() { + recordreplay::Assert("[RUN-2217] SequenceManagerImpl::CleanUpQueues"); + for (auto it = main_thread_only().queues_to_gracefully_shutdown.begin(); it != main_thread_only().queues_to_gracefully_shutdown.end();) { + recordreplay::Assert("[RUN-2217] SequenceManagerImpl::CleanUpQueues #1"); if (it->first->IsEmpty()) { + recordreplay::Assert("[RUN-2217] SequenceManagerImpl::CleanUpQueues #2"); UnregisterTaskQueueImpl(std::move(it->second)); main_thread_only().active_queues.erase(it->first); main_thread_only().queues_to_gracefully_shutdown.erase(it++); } else { + recordreplay::Assert("[RUN-2217] SequenceManagerImpl::CleanUpQueues #3"); ++it; } } main_thread_only().queues_to_delete.clear(); + + recordreplay::Assert("[RUN-2217] SequenceManagerImpl::CleanUpQueues Done"); } void SequenceManagerImpl::RemoveAllCanceledTasksFromFrontOfWorkQueues() {