Notify monitor waiters when changing mSurfaceIsBad value.

Otherwise the waiters might not wake up, leading to ANRs.

Bug: 6307843
Change-Id: I0646b4e8368f80dbff46342f75709992796973fd
This commit is contained in:
Jack Palevich
2012-04-10 05:56:19 -07:00
parent c38cf4c7db
commit 7dee7a38ba

View File

@@ -1459,7 +1459,10 @@ public class GLSurfaceView extends SurfaceView implements SurfaceHolder.Callback
Log.w("GLThread", "egl createSurface");
}
if (!mEglHelper.createSurface()) {
mSurfaceIsBad = true;
synchronized(sGLThreadManager) {
mSurfaceIsBad = true;
sGLThreadManager.notifyAll();
}
continue;
}
createEglSurface = false;
@@ -1519,7 +1522,11 @@ public class GLSurfaceView extends SurfaceView implements SurfaceHolder.Callback
// but we haven't been notified yet.
// Log the error to help developers understand why rendering stopped.
EglHelper.logEglErrorAsWarning("GLThread", "eglSwapBuffers", swapError);
mSurfaceIsBad = true;
synchronized(sGLThreadManager) {
mSurfaceIsBad = true;
sGLThreadManager.notifyAll();
}
break;
}