diff --git a/netwerk/dns/nsHostResolver.cpp b/netwerk/dns/nsHostResolver.cpp index 3f71c6bc94d8..8a6fcda42d21 100644 --- a/netwerk/dns/nsHostResolver.cpp +++ b/netwerk/dns/nsHostResolver.cpp @@ -778,6 +778,9 @@ void nsHostResolver::Shutdown() { if (mNumIdleTasks) mIdleTaskCV.NotifyAll(); + for (auto iter = mRecordDB.Iter(); !iter.Done(); iter.Next()) { + iter.UserData()->Cancel(); + } // empty host database mRecordDB.Clear(); } @@ -797,10 +800,6 @@ void nsHostResolver::Shutdown() { pendingQLow.clear(); evictionQ.clear(); - for (auto iter = mRecordDB.Iter(); !iter.Done(); iter.Next()) { - iter.UserData()->Cancel(); - } - // Shutdown the resolver threads, but with a timeout of 20 seconds. // If the timeout is exceeded, any stuck threads will be leaked. mResolverThreads->ShutdownWithTimeout(20 * 1000);