]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/thread.cpp
forgot to commit some regenerated files
[wxWidgets.git] / src / os2 / thread.cpp
index 884f66cff4ed4f2e399c68560083655f34e61929..04ee638e57bf42b272ee7360aa6804c74b128d2c 100644 (file)
@@ -823,6 +823,28 @@ void WXDLLEXPORT wxWakeUpMainThread()
 {
 }
 
+void WXDLLEXPORT wxMutexGuiEnter()
+{
+    // this would dead lock everything...
+    wxASSERT_MSG( !wxThread::IsMain(),
+                  wxT("main thread doesn't want to block in wxMutexGuiEnter()!") );
+
+    // the order in which we enter the critical sections here is crucial!!
+
+    // set the flag telling to the main thread that we want to do some GUI
+    {
+        wxCriticalSectionLocker enter(*gs_pCritsectWaitingForGui);
+
+        gs_nWaitingForGui++;
+    }
+
+    wxWakeUpMainThread();
+
+    // now we may block here because the main thread will soon let us in
+    // (during the next iteration of OnIdle())
+    gs_pCritsectGui->Enter();
+}
+
 void WXDLLEXPORT wxMutexGuiLeave()
 {
     wxCriticalSectionLocker enter(*gs_pCritsectWaitingForGui);