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

Commit 4d5db38c authored by rleix's avatar rleix Committed by Elliott Hughes
Browse files

Fix the system_error while calling thread::join() in NativeCallbackThread.



system_server crashed because the system_error "resource_deadlock_would_occur"
occurred while calling thread::join(). It is caused by the value of thread is same
with the calling thread. Correct it using std::this_thread::get_id() to check
whether it is the same thread with the calling thread.

Bug: 70603039
Test step:
     Step 1 : Flash DUT and boot it.
     Step 2 : Connect with PC via USB.
     Step 3 : Run the following adb command and check the DUT: 
              adb shell
              su
              ps -A | grep broadcastradio
              kill xxx(the process id of android.hardware.broadcastradio@intel-service)

Change-Id: Ia21282c4cc631a0788496081b1821be28929fae6
Signed-off-by: default avatarLei,RayX <rayx.lei@intel.com>
parent 9c7e9034
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -106,7 +106,7 @@ void NativeCallbackThread::stop() {
        mQueueCond.notify_one();
    }

    if (mThread.get_id() == std::thread::id()) {
    if (mThread.get_id() == std::this_thread::get_id()) {
        // you can't self-join a thread, but it's ok when calling from our sub-task
        ALOGD("About to stop native callback thread %p", this);
        mThread.detach();