wgl: Check for multiple threads before GET_CURRENT_CONTEXT.
authorJosé Fonseca <jfonseca@vmware.com>
Mon, 6 Jul 2009 16:40:08 +0000 (17:40 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Mon, 6 Jul 2009 16:40:08 +0000 (17:40 +0100)
Fixes wglthreads -- the 2nd thread MakeCurrent call was trying to flush
the first thread context while still in use.

src/gallium/state_trackers/wgl/shared/stw_context.c

index 9df1ab765262da231bb7a205f4f72e3009a738ab..8393efbccf5847319f17787252bae44e2148a6ec 100644 (file)
@@ -60,8 +60,14 @@ stw_context(GLcontext *glctx)
 static INLINE struct stw_context *
 stw_current_context(void)
 {
-   GET_CURRENT_CONTEXT( glctx );
-   return stw_context(glctx);
+   /* We must check if multiple threads are being used or GET_CURRENT_CONTEXT 
+    * might return the current context of the thread first seen. */
+   _glapi_check_multithread();
+
+   {
+      GET_CURRENT_CONTEXT( glctx );
+      return stw_context(glctx);
+   }
 }
 
 BOOL