summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/windows/gdi/InitCritSections.cpp
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2006-06-16 14:50:05 +0000
committerBrian Paul <[email protected]>2006-06-16 14:50:05 +0000
commit385f23edf91a366b2e81449632ba3862957a2a74 (patch)
tree61378612bdd021ecface03f6cd84ac75be5c32e2 /src/mesa/drivers/windows/gdi/InitCritSections.cpp
parentc0168fabed24e9089b47895475c7030925cbf399 (diff)
Thread safety for Win32. SourceForge bug #1507315.
Diffstat (limited to 'src/mesa/drivers/windows/gdi/InitCritSections.cpp')
-rw-r--r--src/mesa/drivers/windows/gdi/InitCritSections.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/mesa/drivers/windows/gdi/InitCritSections.cpp b/src/mesa/drivers/windows/gdi/InitCritSections.cpp
new file mode 100644
index 00000000000..7145bffa510
--- /dev/null
+++ b/src/mesa/drivers/windows/gdi/InitCritSections.cpp
@@ -0,0 +1,32 @@
+#include "glapi.h"
+#include "glThread.h"
+
+#ifdef WIN32_THREADS
+extern "C" _glthread_Mutex OneTimeLock;
+extern "C" _glthread_Mutex GenTexturesLock;
+
+extern "C" void FreeAllTSD(void);
+
+class _CriticalSectionInit
+{
+public:
+ static _CriticalSectionInit m_inst;
+
+ _CriticalSectionInit()
+ {
+ _glthread_INIT_MUTEX(OneTimeLock);
+ _glthread_INIT_MUTEX(GenTexturesLock);
+ }
+
+ ~_CriticalSectionInit()
+ {
+ _glthread_DESTROY_MUTEX(OneTimeLock);
+ _glthread_DESTROY_MUTEX(GenTexturesLock);
+ FreeAllTSD();
+ }
+};
+
+_CriticalSectionInit _CriticalSectionInit::m_inst;
+
+
+#endif