summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrleix <rayx.lei@intel.com>2017-12-01 15:25:46 +0800
committerElliott Hughes <enh@google.com>2018-08-06 18:04:24 +0000
commit4d5db38cc386f109d21856ecc31722a952e6d2ee (patch)
tree6fea3db9fa1f1472a36536e97f55a62d56ece0c9
parent9c7e9034abd4e333b3571d23f00e3abbd89af310 (diff)
downloadbase-4d5db38cc386f109d21856ecc31722a952e6d2ee.tar.gz
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: Lei,RayX <rayx.lei@intel.com>
-rw-r--r--services/core/jni/BroadcastRadio/NativeCallbackThread.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/services/core/jni/BroadcastRadio/NativeCallbackThread.cpp b/services/core/jni/BroadcastRadio/NativeCallbackThread.cpp
index 81d46f39d84a..777d344e7a09 100644
--- a/services/core/jni/BroadcastRadio/NativeCallbackThread.cpp
+++ b/services/core/jni/BroadcastRadio/NativeCallbackThread.cpp
@@ -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();