Refine tuner aidl hal threads.
Bug: 197763854
Test: VtsHalTvTunerTargetTest
Test: atest android.media.tv.tuner.cts
Test: sampletunertvinput
Change-Id: Id707438178ed93731919f0155cab805436147f86
diff --git a/tv/tuner/aidl/vts/functional/DvrTests.h b/tv/tuner/aidl/vts/functional/DvrTests.h
index bda57b3..6662637 100644
--- a/tv/tuner/aidl/vts/functional/DvrTests.h
+++ b/tv/tuner/aidl/vts/functional/DvrTests.h
@@ -22,9 +22,11 @@
#include <log/log.h>
#include <utils/Condition.h>
#include <utils/Mutex.h>
+#include <atomic>
#include <fstream>
#include <iostream>
#include <map>
+#include <thread>
#include <aidl/android/hardware/tv/tuner/BnDvrCallback.h>
#include <aidl/android/hardware/tv/tuner/IDvr.h>
@@ -94,7 +96,7 @@
static void* __threadLoopPlayback(void* user);
static void* __threadLoopRecord(void* threadArgs);
void playbackThreadLoop();
- void recordThreadLoop(RecordSettings* recordSetting, bool* keepWritingPlaybackFMQ);
+ void recordThreadLoop();
bool readRecordFMQ();
@@ -115,16 +117,14 @@
std::map<uint32_t, EventFlag*> mFilterMQEventFlag;
android::Mutex mMsgLock;
- android::Mutex mPlaybackThreadLock;
- android::Mutex mRecordThreadLock;
android::Condition mMsgCondition;
- bool mKeepWritingPlaybackFMQ = true;
- bool mKeepReadingRecordFMQ = true;
- bool mPlaybackThreadRunning;
- bool mRecordThreadRunning;
- pthread_t mPlaybackThread;
- pthread_t mRecordThread;
+ std::atomic<bool> mKeepWritingPlaybackFMQ = true;
+ std::atomic<bool> mKeepReadingRecordFMQ = true;
+ std::atomic<bool> mPlaybackThreadRunning;
+ std::atomic<bool> mRecordThreadRunning;
+ std::thread mPlaybackThread;
+ std::thread mRecordThread;
string mInputDataFile;
PlaybackSettings mPlaybackSettings;