mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Fix fingerprint aidl race condition then thread is join
Even if the shared variable is atomic, it must be modified under the mutex in order to correctly publish the modification to the waiting thread. There is a chance that mThread will miss both mIsDestructing and notify event without a mutex. Bug: 231737939 Test: manual Change-Id: If83a94b766c816b9e4897acb1e89eacdce880c15
This commit is contained in:
@@ -31,7 +31,10 @@ WorkerThread::WorkerThread(size_t maxQueueSize)
|
||||
WorkerThread::~WorkerThread() {
|
||||
// This is a signal for threadFunc to terminate as soon as possible, and a hint for schedule
|
||||
// that it doesn't need to do any work.
|
||||
mIsDestructing = true;
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(mQueueMutex);
|
||||
mIsDestructing = true;
|
||||
}
|
||||
mQueueCond.notify_all();
|
||||
mThread.join();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user