From cc5c7d9cd7eccf5b2f216b8e11e804dc8f7e771e Mon Sep 17 00:00:00 2001 From: Nicolas Capens Date: Mon, 13 Jun 2016 14:35:11 -0400 Subject: [PATCH] Delete thread data at eglReleaseThread. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Bug 29279831 Change-Id: If5dbcb3e32e88d1e574d45d3368ed114fd4f85b7 Reviewed-on: https://swiftshader-review.googlesource.com/5581 Reviewed-by: Alexis Hétu Reviewed-by: Nicolas Capens Tested-by: Nicolas Capens --- src/OpenGL/libEGL/libEGL.cpp | 2 +- src/OpenGL/libEGL/main.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/OpenGL/libEGL/libEGL.cpp b/src/OpenGL/libEGL/libEGL.cpp index 4d8a16961..a85d3012d 100644 --- a/src/OpenGL/libEGL/libEGL.cpp +++ b/src/OpenGL/libEGL/libEGL.cpp @@ -485,7 +485,7 @@ EGLBoolean ReleaseThread(void) { TRACE("()"); - eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_CONTEXT, EGL_NO_SURFACE, EGL_NO_SURFACE); + detachThread(); return success(EGL_TRUE); } diff --git a/src/OpenGL/libEGL/main.cpp b/src/OpenGL/libEGL/main.cpp index 2479b4efe..459716522 100644 --- a/src/OpenGL/libEGL/main.cpp +++ b/src/OpenGL/libEGL/main.cpp @@ -62,7 +62,10 @@ void detachThread() { TRACE("()"); + eglMakeCurrent(EGL_NO_DISPLAY, EGL_NO_CONTEXT, EGL_NO_SURFACE, EGL_NO_SURFACE); + delete (Current*)sw::Thread::getLocalStorage(currentTLS); + sw::Thread::setLocalStorage(currentTLS, nullptr); } CONSTRUCTOR void attachProcess() -- 2.11.0