diff options
author | Kaiyi Li <kaiyili@google.com> | 2022-10-10 11:15:55 -0700 |
---|---|---|
committer | Kaiyi Li <kaiyili@google.com> | 2022-10-10 11:51:21 -0700 |
commit | d86bf714ff19ef6f05a4b80bfd0ab7da681c803e (patch) | |
tree | 9e1cff800c69c01cc28b49d37ea7f7941f981df6 | |
parent | 9596e4808eb3b3bcf294ab205e4c8dcf7c888dd0 (diff) | |
download | vulkan-cereal-d86bf714ff19ef6f05a4b80bfd0ab7da681c803e.tar.gz |
Remove WorkerThread::isStarted
Test: build
Change-Id: I642f2896b86f29e5f773d09777e85adefef766c4
-rw-r--r-- | stream-servers/FrameBuffer.cpp | 12 | ||||
-rw-r--r-- | stream-servers/FrameBuffer.h | 2 |
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); |