Don't delete the POSIX TLS key if it hasn't been created yet

0 (the initial value of context) is a valid TLS key, so doing this can
delete someone else's key.
This commit is contained in:
Roman Donchenko 2015-10-28 15:22:33 +03:00
parent 43f4afef78
commit 7b6985f033
2 changed files with 7 additions and 1 deletions

View File

@ -41,12 +41,17 @@ int _glfwCreateContextTLS(void)
return GLFW_FALSE;
}
_glfw.posix_tls.allocated = GLFW_TRUE;
return GLFW_TRUE;
}
void _glfwDestroyContextTLS(void)
{
pthread_key_delete(_glfw.posix_tls.context);
if (_glfw.posix_tls.allocated)
{
pthread_key_delete(_glfw.posix_tls.context);
_glfw.posix_tls.allocated = GLFW_FALSE;
}
}
void _glfwSetContextTLS(_GLFWwindow* context)

View File

@ -37,6 +37,7 @@
//
typedef struct _GLFWtlsPOSIX
{
GLFWbool allocated;
pthread_key_t context;
} _GLFWtlsPOSIX;