From a28c827fdb58ec489931d6e70e27818619bc1b75 Mon Sep 17 00:00:00 2001 From: Roland Levillain Date: Fri, 30 Apr 2021 17:09:10 +0100 Subject: Use `quick_exit` instead of `_exit` (except for error handling). Replace every occurrence of `_exit` (for cases other than pure error handling) with `quick_exit`, in order to allow functions registered with `at_quick_exit` to be called before exiting. In particular, this change will allow LLVM's code coverage profile dumping routine to be called before exiting ART processes. Test: mmma art Test: ART tests Bug: 186576313 Change-Id: Ia9b0dbb471e2a26600c8bd23f7567931d050fc9d --- dalvikvm/dalvikvm.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'dalvikvm/dalvikvm.cc') diff --git a/dalvikvm/dalvikvm.cc b/dalvikvm/dalvikvm.cc index 4808a1fa09..f2cc225e8b 100644 --- a/dalvikvm/dalvikvm.cc +++ b/dalvikvm/dalvikvm.cc @@ -215,6 +215,8 @@ extern "C" const char *__asan_default_options() { int main(int argc, char** argv) { // Do not allow static destructors to be called, since it's conceivable that - // daemons may still awaken (literally). - _exit(art::dalvikvm(argc, argv)); + // daemons may still awaken (literally); but still have functions registered + // with `at_quick_exit` (for instance LLVM's code coverage profile dumping + // routine) be called before exiting. + quick_exit(art::dalvikvm(argc, argv)); } -- cgit v1.2.3-59-g8ed1b