Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea22519d authored by Mikhail Naganov's avatar Mikhail Naganov Committed by JP Sugarbroad
Browse files

audioserver: Use '_exit' instead of 'exit' in HalDeathHandler

Using 'exit' from an RPC threadpool thread is not safe, as 'exit'
runs atexit handlers that destroy global objects. This can interfere
with code still running on other threads.

'_exit' does not run atexit handlers, just terminates the process.

Bug: 116665972
Test: kill android.hardware.audio@2.0-service, check logcat
Change-Id: I5391a659e359e0ca5bba580f1c51dea5df3ea562
(cherry picked from commit 5beb4810)
(cherry picked from commit 06c5d535)
parent de85c0a2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ void HalDeathHandler::serviceDied(uint64_t /*cookie*/, const wp<IBase>& /*who*/)
        handler.second();
    }
    ALOGE("HAL server crashed, audio server is restarting");
    exit(1);
    _exit(1);  // Avoid calling atexit handlers, as this code runs on a thread from RPC threadpool.
}

} // namespace android