summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaiyi Li <kaiyili@google.com>2022-10-10 11:15:55 -0700
committerKaiyi Li <kaiyili@google.com>2022-10-10 11:51:21 -0700
commitd86bf714ff19ef6f05a4b80bfd0ab7da681c803e (patch)
tree9e1cff800c69c01cc28b49d37ea7f7941f981df6
parent9596e4808eb3b3bcf294ab205e4c8dcf7c888dd0 (diff)
downloadvulkan-cereal-d86bf714ff19ef6f05a4b80bfd0ab7da681c803e.tar.gz
Remove WorkerThread::isStarted
Test: build Change-Id: I642f2896b86f29e5f773d09777e85adefef766c4
-rw-r--r--stream-servers/FrameBuffer.cpp12
-rw-r--r--stream-servers/FrameBuffer.h2
2 files changed, 9 insertions, 5 deletions
diff --git a/stream-servers/FrameBuffer.cpp b/stream-servers/FrameBuffer.cpp
index a72d42bc..b2d51f6f 100644
--- a/stream-servers/FrameBuffer.cpp
+++ b/stream-servers/FrameBuffer.cpp
@@ -1009,9 +1009,9 @@ FrameBuffer::FrameBuffer(int p_width, int p_height, bool useSubWindow)
FrameBuffer::~FrameBuffer() {
finalize();
- if (m_postThread.isStarted()) {
- m_postThread.enqueue({ PostCmd::Exit, });
- }
+ m_postThread.enqueue({
+ PostCmd::Exit,
+ });
delete m_textureDraw;
delete m_configs;
@@ -1139,7 +1139,8 @@ std::future<void> FrameBuffer::sendPostWorkerCmd(Post post) {
bool postOnlyOnMainThread = false;
#endif
- if (!m_postThread.isStarted()) {
+ bool expectedPostThreadStarted = false;
+ if (m_postThreadStarted.compare_exchange_strong(expectedPostThreadStarted, true)) {
if (postOnlyOnMainThread) {
EGLContext prevContext = s_egl.eglGetCurrentContext();
EGLSurface prevReadSurf = s_egl.eglGetCurrentSurface(EGL_READ);
@@ -1229,7 +1230,8 @@ void FrameBuffer::setPostCallback(
m_onPost[displayId].height = h;
m_onPost[displayId].img = new unsigned char[4 * w * h];
m_onPost[displayId].readBgra = useBgraReadback;
- if (!m_readbackThread.isStarted()) {
+ bool expectedReadbackThreadStarted = false;
+ if (m_readbackThreadStarted.compare_exchange_strong(expectedReadbackThreadStarted, true)) {
m_readbackThread.start();
m_readbackThread.enqueue({ ReadbackCmd::Init });
}
diff --git a/stream-servers/FrameBuffer.h b/stream-servers/FrameBuffer.h
index a7401774..dc7ab7b0 100644
--- a/stream-servers/FrameBuffer.h
+++ b/stream-servers/FrameBuffer.h
@@ -786,6 +786,7 @@ class FrameBuffer {
std::map<uint32_t, onPost> m_onPost;
std::unique_ptr<ReadbackWorker> m_readbackWorker;
android::base::WorkerThread<Readback> m_readbackThread;
+ std::atomic_bool m_readbackThreadStarted = false;
std::string m_graphicsAdapterVendor;
std::string m_graphicsAdapterName;
@@ -820,6 +821,7 @@ class FrameBuffer {
bool m_noDelayCloseColorBufferEnabled = false;
std::unique_ptr<PostWorker> m_postWorker = {};
+ std::atomic_bool m_postThreadStarted = false;
android::base::WorkerThread<Post> m_postThread;
android::base::WorkerProcessingResult postWorkerFunc(Post& post);
std::future<void> sendPostWorkerCmd(Post post);