summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/wgl
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2009-07-06 17:40:08 +0100
committerJosé Fonseca <[email protected]>2009-07-06 17:40:08 +0100
commit6f4167c8a215b561e5ad6eb58a8d875a5b8d8d6a (patch)
treefe3a0b76f3367076584830229ad84ed83f618d0c /src/gallium/state_trackers/wgl
parent5470a67335dfd9afffb92ff6521a77519cda40d8 (diff)
wgl: Check for multiple threads before GET_CURRENT_CONTEXT.
Fixes wglthreads -- the 2nd thread MakeCurrent call was trying to flush the first thread context while still in use.
Diffstat (limited to 'src/gallium/state_trackers/wgl')
-rw-r--r--src/gallium/state_trackers/wgl/shared/stw_context.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/wgl/shared/stw_context.c b/src/gallium/state_trackers/wgl/shared/stw_context.c
index 9df1ab76526..8393efbccf5 100644
--- a/src/gallium/state_trackers/wgl/shared/stw_context.c
+++ b/src/gallium/state_trackers/wgl/shared/stw_context.c
@@ -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