Go to file
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
build build: add device-type dalvik heap configs 2012-03-23 09:42:42 -07:00
cmds Add sdcard_r group to dumpstate. 2012-04-11 12:27:48 -07:00
data/etc Move com.nxp.mifare to frameworks/native. 2012-04-12 21:24:08 -07:00
include fix Region const_iterator. 2012-04-16 18:40:30 -07:00
libs fix Region const_iterator. 2012-04-16 18:40:30 -07:00
opengl Fix deadlock when cleaning objects in eglTerminate 2012-04-17 14:52:13 -07:00
services Merge "don't attempt to clip layers anymore using glScissor" 2012-04-16 16:00:11 -07:00
MODULE_LICENSE_APACHE2
NOTICE