diff options
author | Mathias Agopian <mathias@google.com> | 2011-03-16 14:19:03 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2011-03-16 14:19:03 -0700 |
commit | 3d69bea1f6e009a9ad096c5be9098d1064853f43 (patch) | |
tree | 3dcd1bec56facfbbfd6fe3f4cfa6a94bdcb7b038 /opengl | |
parent | 2d5cbc92add5065a62acdd38cd254eebb1ee2f94 (diff) | |
download | frameworks_base-3d69bea1f6e009a9ad096c5be9098d1064853f43.zip frameworks_base-3d69bea1f6e009a9ad096c5be9098d1064853f43.tar.gz frameworks_base-3d69bea1f6e009a9ad096c5be9098d1064853f43.tar.bz2 |
fix [4107131] nvidia driver call takes a very long time
We were leaking all EGLSyncKHR objects, over time the list
would grow and become very slow to operate on.
Bug: 4107131
Change-Id: I6c82daf49fe3189d04550781d64d57c30c95f552
Diffstat (limited to 'opengl')
-rw-r--r-- | opengl/libs/EGL/egl.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/opengl/libs/EGL/egl.cpp b/opengl/libs/EGL/egl.cpp index f4a1650..e13af1c 100644 --- a/opengl/libs/EGL/egl.cpp +++ b/opengl/libs/EGL/egl.cpp @@ -2077,14 +2077,15 @@ EGLBoolean eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync) if (!validate_display_context(dpy, ctx)) return EGL_FALSE; + EGLBoolean result = EGL_FALSE; egl_context_t * const c = get_context(ctx); - if (c->cnx->egl.eglDestroySyncKHR) { - return c->cnx->egl.eglDestroySyncKHR( + result = c->cnx->egl.eglDestroySyncKHR( dp->disp[c->impl].dpy, syncObject->sync); + if (result) + _s.terminate(); } - - return EGL_FALSE; + return result; } EGLint eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout) |