Clean Up Playback Thread in DVR Test Implementation
Bug: 194476544
Test: atest VtsHalTvTunerV1_0TargetTest && atest
VtsHalTvTunerV1_1TargetTest
Change-Id: I639e8314a499c07758c4927fa10cb4ff0e6dcb50
diff --git a/tv/tuner/1.1/default/Dvr.h b/tv/tuner/1.1/default/Dvr.h
index 9fabb49..bf46c1e 100644
--- a/tv/tuner/1.1/default/Dvr.h
+++ b/tv/tuner/1.1/default/Dvr.h
@@ -19,7 +19,9 @@
#include <fmq/MessageQueue.h>
#include <math.h>
+#include <atomic>
#include <set>
+#include <thread>
#include "Demux.h"
#include "Frontend.h"
#include "Tuner.h"
@@ -115,7 +117,6 @@
* Each filter handler handles the data filtering/output writing/filterEvent updating.
*/
void startTpidFilter(vector<uint8_t> data);
- static void* __threadLoopPlayback(void* user);
static void* __threadLoopRecord(void* user);
void playbackThreadLoop();
void recordThreadLoop();
@@ -129,7 +130,7 @@
DvrSettings mDvrSettings;
// Thread handlers
- pthread_t mDvrThread;
+ std::thread mDvrThread;
// FMQ status local records
PlaybackStatus mPlaybackStatus;
@@ -137,7 +138,7 @@
/**
* If a specific filter's writing loop is still running
*/
- bool mDvrThreadRunning;
+ std::atomic<bool> mDvrThreadRunning;
bool mKeepFetchingDataFromFrontend;
/**
* Lock to protect writes to the FMQs
@@ -148,7 +149,6 @@
*/
std::mutex mPlaybackStatusLock;
std::mutex mRecordStatusLock;
- std::mutex mDvrThreadLock;
const bool DEBUG_DVR = false;
};