diff options
author | 2021-04-30 17:09:10 +0100 | |
---|---|---|
committer | 2021-05-07 09:13:03 +0000 | |
commit | a28c827fdb58ec489931d6e70e27818619bc1b75 (patch) | |
tree | 038448d3d8d2922c05296b60b1280c3ed3f596b6 /dalvikvm/dalvikvm.cc | |
parent | 7eedd447cb5a4904acf80123ef813a7b8dead9a2 (diff) |
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
Diffstat (limited to 'dalvikvm/dalvikvm.cc')
-rw-r--r-- | dalvikvm/dalvikvm.cc | 6 |
1 files changed, 4 insertions, 2 deletions
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)); } |