SF: Extract utils::OnceFuture
Make `mRenderEnginePrimeCacheFuture` thread-safe and release its shared
state after the wait.
Bug: 328459745
Test: presubmit
Change-Id: I2bf3029823109a8c97e599d20c15e46ac1e4aeb9
diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
index b9ea0c3..0cc8fbb 100644
--- a/services/surfaceflinger/SurfaceFlinger.h
+++ b/services/surfaceflinger/SurfaceFlinger.h
@@ -89,6 +89,7 @@
#include "Tracing/TransactionTracing.h"
#include "TransactionCallbackInvoker.h"
#include "TransactionState.h"
+#include "Utils/OnceFuture.h"
#include <atomic>
#include <cstdint>
@@ -1189,10 +1190,9 @@
pid_t mPid;
// TODO: b/328459745 - Encapsulate in a SystemProperties object.
- std::mutex mInitBootPropsFutureMutex;
- std::future<void> mInitBootPropsFuture GUARDED_BY(mInitBootPropsFutureMutex);
+ utils::OnceFuture mInitBootPropsFuture;
- std::future<void> mRenderEnginePrimeCacheFuture;
+ utils::OnceFuture mRenderEnginePrimeCacheFuture;
// mStateLock has conventions related to the current thread, because only
// the main thread should modify variables protected by mStateLock.