fixing a race condition on MsgTask::destroy()
am: 4eda8e1eab
Change-Id: I454c2dcb8a17c43f8e42edd326b950cd8173eac1
diff --git a/msm8909/utils/MsgTask.cpp b/msm8909/utils/MsgTask.cpp
index 6f9d0e9..0e7a3a2 100644
--- a/msm8909/utils/MsgTask.cpp
+++ b/msm8909/utils/MsgTask.cpp
@@ -63,9 +63,9 @@
}
void MsgTask::destroy() {
+ LocThread* thread = mThread;
msg_q_unblock((void*)mQ);
- if (mThread) {
- LocThread* thread = mThread;
+ if (thread) {
mThread = NULL;
delete thread;
} else {
diff --git a/msm8996/utils/MsgTask.cpp b/msm8996/utils/MsgTask.cpp
index 6f9d0e9..0e7a3a2 100644
--- a/msm8996/utils/MsgTask.cpp
+++ b/msm8996/utils/MsgTask.cpp
@@ -63,9 +63,9 @@
}
void MsgTask::destroy() {
+ LocThread* thread = mThread;
msg_q_unblock((void*)mQ);
- if (mThread) {
- LocThread* thread = mThread;
+ if (thread) {
mThread = NULL;
delete thread;
} else {
diff --git a/msm8998/utils/MsgTask.cpp b/msm8998/utils/MsgTask.cpp
index 78a3fe0..42079d7 100644
--- a/msm8998/utils/MsgTask.cpp
+++ b/msm8998/utils/MsgTask.cpp
@@ -62,9 +62,9 @@
}
void MsgTask::destroy() {
+ LocThread* thread = mThread;
msg_q_unblock((void*)mQ);
- if (mThread) {
- LocThread* thread = mThread;
+ if (thread) {
mThread = NULL;
delete thread;
} else {