23THREAD_LOCAL GLEWContext lacf_glew_per_thread_ctx;
27pthread_key_t lacf_glew_ctx_key;
28pthread_once_t lacf_glew_ctx_once = PTHREAD_ONCE_INIT;
31lacf_glew_ctx_make_key(
void)
33 (void) pthread_key_create(&lacf_glew_ctx_key, free);
38DWORD lacf_glew_ctx_key = 0;
47lacf_glew_dllmain_hook(DWORD reason)
50 case DLL_PROCESS_ATTACH:
53 case DLL_THREAD_DETACH:
54 lacf_glew_thread_fini();
56 case DLL_PROCESS_DETACH:
66 lacf_glew_ctx_key = TlsAlloc();
67 VERIFY(lacf_glew_ctx_key != TLS_OUT_OF_INDEXES);
71lacf_glew_thread_fini(
void)
75 VERIFY(lacf_glew_ctx_key != 0);
76 ctx = TlsGetValue(lacf_glew_ctx_key);
79 TlsSetValue(lacf_glew_ctx_key, NULL);
86 ASSERT(lacf_glew_ctx_key != 0);
87 TlsFree(lacf_glew_ctx_key);
88 lacf_glew_ctx_key = 0;
94DllMain(HINSTANCE hinst, DWORD reason, LPVOID resvd)
98 lacf_glew_dllmain_hook(reason);
#define VERIFY3U(x, op, y)
void lacf_free(void *buf)