mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-04-26 09:06:52 +02:00
win32: Allow POSIX threads to be used if --with-threads=posix
All tests pass with this patch AND a good pthreads implementation (i'm using winpthreads, not pthreads-w32). https://bugzilla.gnome.org/show_bug.cgi?id=697626
This commit is contained in:
parent
0a130c8bb0
commit
2ca9dda72a
@ -2177,14 +2177,20 @@ AS_IF([test x$have_threads = xposix], [
|
|||||||
])
|
])
|
||||||
|
|
||||||
g_threads_impl="POSIX"
|
g_threads_impl="POSIX"
|
||||||
|
AC_DEFINE([THREADS_POSIX], [1], [Use pthreads])
|
||||||
AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
|
AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
|
||||||
CPPFLAGS="$glib_save_CPPFLAGS"
|
CPPFLAGS="$glib_save_CPPFLAGS"
|
||||||
], [test x$have_threads = xwin32], [
|
], [test x$have_threads = xwin32], [
|
||||||
|
AC_DEFINE([THREADS_WIN32], [1], [Use w32 threads])
|
||||||
g_threads_impl="WIN32"
|
g_threads_impl="WIN32"
|
||||||
], [
|
], [
|
||||||
|
AC_DEFINE([THREADS_NONE], [1], [Use no threads])
|
||||||
g_threads_impl="NONE"
|
g_threads_impl="NONE"
|
||||||
G_THREAD_LIBS=error
|
G_THREAD_LIBS=error
|
||||||
])
|
])
|
||||||
|
AM_CONDITIONAL(THREADS_POSIX, [test "$g_threads_impl" = "POSIX"])
|
||||||
|
AM_CONDITIONAL(THREADS_WIN32, [test "$g_threads_impl" = "WIN32"])
|
||||||
|
AM_CONDITIONAL(THREADS_NONE, [test "$g_threads_impl" = "NONE"])
|
||||||
|
|
||||||
if test "x$G_THREAD_LIBS" = xerror; then
|
if test "x$G_THREAD_LIBS" = xerror; then
|
||||||
AC_MSG_ERROR($LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2)
|
AC_MSG_ERROR($LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2)
|
||||||
|
@ -214,11 +214,13 @@ if OS_UNIX
|
|||||||
libglib_2_0_la_SOURCES += glib-unix.c
|
libglib_2_0_la_SOURCES += glib-unix.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if OS_WIN32
|
if THREADS_WIN32
|
||||||
libglib_2_0_la_SOURCES += gthread-win32.c
|
libglib_2_0_la_SOURCES += gthread-win32.c
|
||||||
else
|
else
|
||||||
|
if THREADS_POSIX
|
||||||
libglib_2_0_la_SOURCES += gthread-posix.c
|
libglib_2_0_la_SOURCES += gthread-posix.c
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
EXTRA_libglib_2_0_la_SOURCES = \
|
EXTRA_libglib_2_0_la_SOURCES = \
|
||||||
giounix.c \
|
giounix.c \
|
||||||
|
@ -239,12 +239,16 @@ DllMain (HINSTANCE hinstDLL,
|
|||||||
case DLL_PROCESS_ATTACH:
|
case DLL_PROCESS_ATTACH:
|
||||||
glib_dll = hinstDLL;
|
glib_dll = hinstDLL;
|
||||||
g_clock_win32_init ();
|
g_clock_win32_init ();
|
||||||
|
#ifdef THREADS_WIN32
|
||||||
g_thread_win32_init ();
|
g_thread_win32_init ();
|
||||||
|
#endif
|
||||||
glib_init ();
|
glib_init ();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DLL_THREAD_DETACH:
|
case DLL_THREAD_DETACH:
|
||||||
|
#ifdef THREADS_WIN32
|
||||||
g_thread_win32_thread_detach ();
|
g_thread_win32_thread_detach ();
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -66,6 +66,9 @@
|
|||||||
#ifdef HAVE_SYS_PRCTL_H
|
#ifdef HAVE_SYS_PRCTL_H
|
||||||
#include <sys/prctl.h>
|
#include <sys/prctl.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
#include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
g_thread_abort (gint status,
|
g_thread_abort (gint status,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user