summaryrefslogtreecommitdiff
path: root/graphics/java/android/renderscript/ProgramStore.java
diff options
context:
space:
mode:
authorJack Palevich <jackpal@google.com>2009-11-10 18:26:42 +0800
committerJack Palevich <jackpal@google.com>2009-11-10 18:26:42 +0800
commit67dcd6c2392caf3ff98f35a3d1ec550d229c167b (patch)
tree424ee1b424f4fc7c69f4df0ea065c7d3dd365c06 /graphics/java/android/renderscript/ProgramStore.java
parente6ab011b8b8aa6c461e64cabb9b25d890d68edb1 (diff)
Fix multi-lock ordering issues in GLSurfaceView
There were potential deadlocks between the per-GLThread monitors and the GLThreadManager monitor. To avoid these deadlocks we now use a single monitor for both the GLThreadManager state and the per-GLThread state. Converted GLThreadManager's semaphore into the equivalent synchronized-wait-notifyAll code. This enables us to wait for either mDone, or user events, or the EGL surface with a single "wait()". Simplified the logic used to acquire and release the EGL surface. The EGL surface is now only requested while the surfaceFlinger surface is acquired. Removed the "egl surface stealing" policy we had recently inserted. It's not needed now that we reliably quit when requested. Pulled user event processing outside of the GLThreadManager monitor so that we don't call any potentially-long-running code while inside the monitor. This should help with bug 2228262.
Diffstat (limited to 'graphics/java/android/renderscript/ProgramStore.java')
0 files changed, 0 insertions, 0 deletions