replicant-frameworks_native/opengl
Jesse Hall a0fef1c8bb Fix deadlock when cleaning objects in eglTerminate
When eglTerminate() is called with a window surface still exists, a
deadlock would occur since egl_display_t::terminate() holds a lock
while destroying the window surface, which calls
onWindowSurfaceDestroyed() which attempts to take the same lock.

This change refactors the hibernation code and data into a separate
object with its own lock, separate from the egl_display_t lock. This
avoids the deadlock and better encapsulates the hibernation logic.

The change also fixes a bug discovered incidentally while debugging:
hibernating after calling eglTerminate() succeeds, but will cause
awakens from subsequent eglInitialize() to fail. We will no longer
hibernate a terminated display.

Change-Id: If55e5bb603d4f8953babc439ffc8d8a60af103d9
2012-04-17 14:52:13 -07:00
..
include Hibernate the EGL implementation when idle 2012-04-09 21:36:17 -07:00
libagl libagl shouldn't export anything 2012-02-27 13:03:04 -08:00
libs Fix deadlock when cleaning objects in eglTerminate 2012-04-17 14:52:13 -07:00
specs add a way to access the version string of the h/w implementation of EGL 2011-11-29 18:00:35 -08:00
tests frameworks/native: prevent some opengl tests from building in pdk 2012-03-26 16:01:43 -07:00
tools/glgen GLES: add image external enums 2011-11-15 11:35:46 -08:00