X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7c351dad14431c3e1aeeef6b86f61ba898d1d9ad..2b854a32613f34669af815e1416a6c623a4c2c5b:/src/gtk1/threadgui.inc diff --git a/src/gtk1/threadgui.inc b/src/gtk1/threadgui.inc index 8195b0ddbd..1717b172f6 100644 --- a/src/gtk1/threadgui.inc +++ b/src/gtk1/threadgui.inc @@ -21,7 +21,6 @@ #include - ///////////////////////////////////////////////////////////////////////////// // Static variables ///////////////////////////////////////////////////////////////////////////// @@ -36,20 +35,26 @@ static void ThreadExitProc(gpointer WXUNUSED(client), gint fid, GdkInputCondition WXUNUSED(cond)) { - wxThread* ptr; + wxThread* ptr; + + // printf( "thread exit proc.\n" ); - if (fid != p_thrd_pipe[0]) - return; - if (read(fid, &ptr, sizeof(ptr)) == sizeof(ptr)) { - //fprintf(stderr, "calling OnExit %p\n", ptr); - ptr->OnExit(); - } else { - //fprintf(stderr, "this should never happen\n"); - } + if (fid != p_thrd_pipe[0]) + return; + + if (read(fid, &ptr, sizeof(ptr)) == sizeof(ptr)) + { + // printf( "calling OnExit %p\n", ptr); + ptr->OnExit(); + } + else + { + // printf( "this should never happen\n" ); + } } // Global initialization -static void wxThreadGuiInit(void) +static void wxThreadGuiInit() { pipe(p_thrd_pipe); p_thrd_inid = gdk_input_add(p_thrd_pipe[0], GDK_INPUT_READ, @@ -57,9 +62,19 @@ static void wxThreadGuiInit(void) } // Global cleanup -static void wxThreadGuiExit(void) +static void wxThreadGuiExit() { gdk_input_remove(p_thrd_inid); close(p_thrd_pipe[0]); close(p_thrd_pipe[1]); } + +void wxMutexGuiEnter() +{ + gs_mutexGui->Lock(); +} + +void wxMutexGuiLeave() +{ + gs_mutexGui->Unlock(); +}