asg: fix snapshots not working while emulator is running
After this, we can use the snapshots UI to save/load asg snapshots
while the emulator is running.
Cherry-pick aosp/1532726
Change-Id: I8a7043d11a3f7ff62e23ea126e8d7076f8ad68f6
diff --git a/stream-servers/RenderThread.cpp b/stream-servers/RenderThread.cpp
index a6e85d9..a3d98dd 100644
--- a/stream-servers/RenderThread.cpp
+++ b/stream-servers/RenderThread.cpp
@@ -139,8 +139,14 @@
assert(mState == SnapshotState::Empty);
mStream.emplace();
mState = SnapshotState::StartSaving;
- if (mChannel) mChannel->pausePreSnapshot();
- mCondVar.broadcastAndUnlock(&lock);
+ if (mRingStream) {
+ mRingStream->pausePreSnapshot();
+ // mCondVar.broadcastAndUnlock(&lock);
+ }
+ if (mChannel) {
+ mChannel->pausePreSnapshot();
+ mCondVar.broadcastAndUnlock(&lock);
+ }
}
void RenderThread::resume() {
@@ -150,10 +156,12 @@
if (mState == SnapshotState::Empty) {
return;
}
+ if (mRingStream) mRingStream->resume();
waitForSnapshotCompletion(&lock);
mStream.clear();
mState = SnapshotState::Empty;
if (mChannel) mChannel->resume();
+ if (mRingStream) mRingStream->resume();
mCondVar.broadcastAndUnlock(&lock);
}