#include <sched.h>
#endif
+#ifdef __WXGTK12__
+#include "gtk/gtk.h"
+#endif
+
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
// the key for the pointer to the associated wxThread object
static pthread_key_t gs_keySelf;
+#ifndef __WXGTK12__
// this mutex must be acquired before any call to a GUI function
static wxMutex *gs_mutexGui;
+#endif
// ============================================================================
// implementation
// next wake up the threads waiting for us (OTOH, this function won't return
// until someone waited for us!)
- p_internal->SignalExit();
-
p_internal->SetState(STATE_EXITED);
+ p_internal->SignalExit();
+
// delete both C++ thread object and terminate the OS thread object
// GL: This is very ugly and buggy ...
// delete this;
return FALSE;
}
+#ifndef __WXGTK12__
gs_mutexGui = new wxMutex();
-
- //wxThreadGuiInit();
+#endif
gs_tidMain = pthread_self();
+
+#ifndef __WXGTK12__
gs_mutexGui->Lock();
+#endif
return TRUE;
}
gs_allThreads[n]->Delete();
}
+#ifndef __WXGTK12__
// destroy GUI mutex
gs_mutexGui->Unlock();
- //wxThreadGuiExit();
-
delete gs_mutexGui;
+#endif
// and free TLD slot
(void)pthread_key_delete(gs_keySelf);
void wxMutexGuiEnter()
{
+#ifdef __WXGTK12__
+ gdk_threads_enter();
+#else
gs_mutexGui->Lock();
+#endif
}
void wxMutexGuiLeave()
{
+#ifdef __WXGTK12__
+ gdk_threads_leave();
+#else
gs_mutexGui->Unlock();
+#endif
}
#endif