forked from mirrors/gecko-dev
This patch wants to solve several quirks around the shutdown terminator. - Use the same shutdown phase definitions in AppShutdown and nsTerminator. This touches quite a few files. - Ensure that the terminator phase shift is handled before any shutdown observer notifications are sent and reduce its heartbeat duration. - Add missing phases to the shutdown telemetry. Please note that this changes the unit of "tick" to 100ms rather than 1s. As a side effect, we also remove the obsolete "shutdown-persist" context. While the existing test coverage continues to prove the most important functions, we acknowledge the wish for better test coverage with [[ https://bugzilla.mozilla.org/show_bug.cgi?id=1693966 | bug 1693966 ]]. Differential Revision: https://phabricator.services.mozilla.com/D103626
34 lines
939 B
C++
34 lines
939 B
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef ShutdownPhase_h
|
|
#define ShutdownPhase_h
|
|
|
|
namespace mozilla {
|
|
|
|
// Must be contiguous starting at 0
|
|
enum class ShutdownPhase {
|
|
NotInShutdown = 0,
|
|
AppShutdownConfirmed,
|
|
AppShutdownNetTeardown,
|
|
AppShutdownTeardown,
|
|
AppShutdown,
|
|
AppShutdownQM,
|
|
AppShutdownTelemetry,
|
|
XPCOMWillShutdown,
|
|
XPCOMShutdown,
|
|
XPCOMShutdownThreads,
|
|
XPCOMShutdownLoaders,
|
|
XPCOMShutdownFinal,
|
|
CCPostLastCycleCollection,
|
|
ShutdownPhase_Length, // never pass this value
|
|
First = AppShutdownConfirmed, // for iteration
|
|
Last = XPCOMShutdownFinal
|
|
};
|
|
|
|
} // namespace mozilla
|
|
|
|
#endif // ShutdownPhase_h
|