mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-23 22:16:16 +01:00
Add thread_equal function to allow for platform defined function to
2001-09-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de> * glib/gthread.h (GThreadFunctions): Add thread_equal function to allow for platform defined function to compare two threads. * glib/gthread.c: Use g_thread_functions_for_glib_use.thread_equal when non-NULL instead of ==. * gthread/gthread-posix.c: Add g_thread_equal_posix_impl and add to the function vector g_thread_functions_for_glib_use_default. * gthread/gthread-solaris.c, gthread/gthread-win32.c: Add NULL as equal function, as on those two platforms you don't need an equal function.
This commit is contained in:
parent
5ad6ec44c6
commit
f8f4c3778a
@ -1,3 +1,11 @@
|
||||
2001-09-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gthread.h (GThreadFunctions): Add thread_equal function to
|
||||
allow for platform defined function to compare two threads.
|
||||
|
||||
* glib/gthread.c: Use g_thread_functions_for_glib_use.thread_equal
|
||||
when non-NULL instead of ==.
|
||||
|
||||
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||
|
||||
* Released 1.3.8.
|
||||
|
@ -1,3 +1,11 @@
|
||||
2001-09-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gthread.h (GThreadFunctions): Add thread_equal function to
|
||||
allow for platform defined function to compare two threads.
|
||||
|
||||
* glib/gthread.c: Use g_thread_functions_for_glib_use.thread_equal
|
||||
when non-NULL instead of ==.
|
||||
|
||||
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||
|
||||
* Released 1.3.8.
|
||||
|
@ -1,3 +1,11 @@
|
||||
2001-09-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gthread.h (GThreadFunctions): Add thread_equal function to
|
||||
allow for platform defined function to compare two threads.
|
||||
|
||||
* glib/gthread.c: Use g_thread_functions_for_glib_use.thread_equal
|
||||
when non-NULL instead of ==.
|
||||
|
||||
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||
|
||||
* Released 1.3.8.
|
||||
|
@ -1,3 +1,11 @@
|
||||
2001-09-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gthread.h (GThreadFunctions): Add thread_equal function to
|
||||
allow for platform defined function to compare two threads.
|
||||
|
||||
* glib/gthread.c: Use g_thread_functions_for_glib_use.thread_equal
|
||||
when non-NULL instead of ==.
|
||||
|
||||
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||
|
||||
* Released 1.3.8.
|
||||
|
@ -1,3 +1,11 @@
|
||||
2001-09-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gthread.h (GThreadFunctions): Add thread_equal function to
|
||||
allow for platform defined function to compare two threads.
|
||||
|
||||
* glib/gthread.c: Use g_thread_functions_for_glib_use.thread_equal
|
||||
when non-NULL instead of ==.
|
||||
|
||||
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||
|
||||
* Released 1.3.8.
|
||||
|
@ -1,3 +1,11 @@
|
||||
2001-09-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gthread.h (GThreadFunctions): Add thread_equal function to
|
||||
allow for platform defined function to compare two threads.
|
||||
|
||||
* glib/gthread.c: Use g_thread_functions_for_glib_use.thread_equal
|
||||
when non-NULL instead of ==.
|
||||
|
||||
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||
|
||||
* Released 1.3.8.
|
||||
|
@ -1,3 +1,11 @@
|
||||
2001-09-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gthread.h (GThreadFunctions): Add thread_equal function to
|
||||
allow for platform defined function to compare two threads.
|
||||
|
||||
* glib/gthread.c: Use g_thread_functions_for_glib_use.thread_equal
|
||||
when non-NULL instead of ==.
|
||||
|
||||
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||
|
||||
* Released 1.3.8.
|
||||
|
@ -1,3 +1,11 @@
|
||||
2001-09-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gthread.h (GThreadFunctions): Add thread_equal function to
|
||||
allow for platform defined function to compare two threads.
|
||||
|
||||
* glib/gthread.c: Use g_thread_functions_for_glib_use.thread_equal
|
||||
when non-NULL instead of ==.
|
||||
|
||||
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||
|
||||
* Released 1.3.8.
|
||||
|
@ -137,6 +137,7 @@ This struct should only be used, if you know, what you are doing.
|
||||
@thread_exit:
|
||||
@thread_set_priority:
|
||||
@thread_self:
|
||||
@thread_equal:
|
||||
|
||||
<!-- ##### FUNCTION g_thread_init ##### -->
|
||||
|
||||
|
@ -49,17 +49,22 @@
|
||||
#include <string.h>
|
||||
|
||||
#if GLIB_SIZEOF_SYSTEM_THREAD == SIZEOF_VOID_P
|
||||
# define g_system_thread_equal(thread1, thread2) \
|
||||
(thread1.dummy_pointer == thread2.dummy_pointer)
|
||||
# define g_system_thread_equal_simple(thread1, thread2) \
|
||||
((thread1).dummy_pointer == (thread2).dummy_pointer)
|
||||
# define g_system_thread_assign(dest, src) \
|
||||
(dest.dummy_pointer = src.dummy_pointer)
|
||||
((dest).dummy_pointer = (src).dummy_pointer)
|
||||
#else /* GLIB_SIZEOF_SYSTEM_THREAD != SIZEOF_VOID_P */
|
||||
# define g_system_thread_equal(thread1, thread2) \
|
||||
(memcmp (&thread1, &thread2, GLIB_SIZEOF_SYSTEM_THREAD) == 0)
|
||||
# define g_system_thread_equal_simple(thread1, thread2) \
|
||||
(memcmp (&(thread1), &(thread2), GLIB_SIZEOF_SYSTEM_THREAD) == 0)
|
||||
# define g_system_thread_assign(dest, src) \
|
||||
(memcpy (&dest, &src, GLIB_SIZEOF_SYSTEM_THREAD))
|
||||
(memcpy (&(dest), &(src), GLIB_SIZEOF_SYSTEM_THREAD))
|
||||
#endif /* GLIB_SIZEOF_SYSTEM_THREAD == SIZEOF_VOID_P */
|
||||
|
||||
#define g_system_thread_equal(thread1, thread2) \
|
||||
(g_thread_functions_for_glib_use.thread_equal ? \
|
||||
g_thread_functions_for_glib_use.thread_equal (&(thread1), &(thread2)) :\
|
||||
g_system_thread_equal_simple((thread1), (thread2)))
|
||||
|
||||
GQuark
|
||||
g_thread_error_quark (void)
|
||||
{
|
||||
|
@ -102,6 +102,8 @@ struct _GThreadFunctions
|
||||
void (*thread_set_priority)(gpointer thread,
|
||||
GThreadPriority priority);
|
||||
void (*thread_self) (gpointer thread);
|
||||
gboolean (*thread_equal) (gpointer thread1,
|
||||
gpointer thread2);
|
||||
};
|
||||
|
||||
GLIB_VAR GThreadFunctions g_thread_functions_for_glib_use;
|
||||
|
@ -1,3 +1,11 @@
|
||||
2001-09-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* gthread-posix.c: Add g_thread_equal_posix_impl and add to the
|
||||
function vector g_thread_functions_for_glib_use_default.
|
||||
|
||||
* gthread-solaris.c, gthread-win32.c: Add NULL as equal function,
|
||||
as on those two platforms you don't need an equal function.
|
||||
|
||||
2001-09-19 Tor Lillqvist <tml@iki.fi>
|
||||
|
||||
* gthread.rc.in: Correct InternalName and OriginalFilename to
|
||||
|
@ -383,6 +383,12 @@ g_thread_self_posix_impl (gpointer thread)
|
||||
*(pthread_t*)thread = pthread_self();
|
||||
}
|
||||
|
||||
static gboolean
|
||||
g_thread_equal_posix_impl (gpointer thread1, gpointer thread2)
|
||||
{
|
||||
return (pthread_equal (*(pthread_t*)thread1, *(pthread_t*)thread2) != 0);
|
||||
}
|
||||
|
||||
static GThreadFunctions g_thread_functions_for_glib_use_default =
|
||||
{
|
||||
g_mutex_new_posix_impl,
|
||||
@ -404,5 +410,6 @@ static GThreadFunctions g_thread_functions_for_glib_use_default =
|
||||
g_thread_join_posix_impl,
|
||||
g_thread_exit_posix_impl,
|
||||
g_thread_set_priority_posix_impl,
|
||||
g_thread_self_posix_impl
|
||||
g_thread_self_posix_impl,
|
||||
g_thread_equal_posix_impl
|
||||
};
|
||||
|
@ -270,5 +270,6 @@ static GThreadFunctions g_thread_functions_for_glib_use_default =
|
||||
g_thread_join_solaris_impl,
|
||||
g_thread_exit_solaris_impl,
|
||||
g_thread_set_priority_solaris_impl,
|
||||
g_thread_self_solaris_impl
|
||||
g_thread_self_solaris_impl,
|
||||
NULL /* no equal function necessary on Solaris */
|
||||
};
|
||||
|
@ -521,7 +521,8 @@ static GThreadFunctions g_thread_functions_for_glib_use_default =
|
||||
g_thread_join_win32_impl,
|
||||
g_thread_exit_win32_impl,
|
||||
g_thread_set_priority_win32_impl,
|
||||
g_thread_self_win32_impl
|
||||
g_thread_self_win32_impl,
|
||||
NULL /* no equal function necessary */
|
||||
};
|
||||
|
||||
#define HAVE_G_THREAD_IMPL_INIT
|
||||
|
Loading…
Reference in New Issue
Block a user