mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-24 14:36:13 +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>
|
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* Released 1.3.8.
|
* 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>
|
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* Released 1.3.8.
|
* 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>
|
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* Released 1.3.8.
|
* 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>
|
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* Released 1.3.8.
|
* 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>
|
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* Released 1.3.8.
|
* 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>
|
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* Released 1.3.8.
|
* 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>
|
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* Released 1.3.8.
|
* 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>
|
Wed Sep 19 10:44:25 2001 Tim Janik <timj@gtk.org>
|
||||||
|
|
||||||
* Released 1.3.8.
|
* Released 1.3.8.
|
||||||
|
@ -137,6 +137,7 @@ This struct should only be used, if you know, what you are doing.
|
|||||||
@thread_exit:
|
@thread_exit:
|
||||||
@thread_set_priority:
|
@thread_set_priority:
|
||||||
@thread_self:
|
@thread_self:
|
||||||
|
@thread_equal:
|
||||||
|
|
||||||
<!-- ##### FUNCTION g_thread_init ##### -->
|
<!-- ##### FUNCTION g_thread_init ##### -->
|
||||||
|
|
||||||
|
@ -49,17 +49,22 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#if GLIB_SIZEOF_SYSTEM_THREAD == SIZEOF_VOID_P
|
#if GLIB_SIZEOF_SYSTEM_THREAD == SIZEOF_VOID_P
|
||||||
# define g_system_thread_equal(thread1, thread2) \
|
# define g_system_thread_equal_simple(thread1, thread2) \
|
||||||
(thread1.dummy_pointer == thread2.dummy_pointer)
|
((thread1).dummy_pointer == (thread2).dummy_pointer)
|
||||||
# define g_system_thread_assign(dest, src) \
|
# 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 */
|
#else /* GLIB_SIZEOF_SYSTEM_THREAD != SIZEOF_VOID_P */
|
||||||
# define g_system_thread_equal(thread1, thread2) \
|
# define g_system_thread_equal_simple(thread1, thread2) \
|
||||||
(memcmp (&thread1, &thread2, GLIB_SIZEOF_SYSTEM_THREAD) == 0)
|
(memcmp (&(thread1), &(thread2), GLIB_SIZEOF_SYSTEM_THREAD) == 0)
|
||||||
# define g_system_thread_assign(dest, src) \
|
# 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 */
|
#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
|
GQuark
|
||||||
g_thread_error_quark (void)
|
g_thread_error_quark (void)
|
||||||
{
|
{
|
||||||
|
@ -102,6 +102,8 @@ struct _GThreadFunctions
|
|||||||
void (*thread_set_priority)(gpointer thread,
|
void (*thread_set_priority)(gpointer thread,
|
||||||
GThreadPriority priority);
|
GThreadPriority priority);
|
||||||
void (*thread_self) (gpointer thread);
|
void (*thread_self) (gpointer thread);
|
||||||
|
gboolean (*thread_equal) (gpointer thread1,
|
||||||
|
gpointer thread2);
|
||||||
};
|
};
|
||||||
|
|
||||||
GLIB_VAR GThreadFunctions g_thread_functions_for_glib_use;
|
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>
|
2001-09-19 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
* gthread.rc.in: Correct InternalName and OriginalFilename to
|
* gthread.rc.in: Correct InternalName and OriginalFilename to
|
||||||
|
@ -383,6 +383,12 @@ g_thread_self_posix_impl (gpointer thread)
|
|||||||
*(pthread_t*)thread = pthread_self();
|
*(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 =
|
static GThreadFunctions g_thread_functions_for_glib_use_default =
|
||||||
{
|
{
|
||||||
g_mutex_new_posix_impl,
|
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_join_posix_impl,
|
||||||
g_thread_exit_posix_impl,
|
g_thread_exit_posix_impl,
|
||||||
g_thread_set_priority_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_join_solaris_impl,
|
||||||
g_thread_exit_solaris_impl,
|
g_thread_exit_solaris_impl,
|
||||||
g_thread_set_priority_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_join_win32_impl,
|
||||||
g_thread_exit_win32_impl,
|
g_thread_exit_win32_impl,
|
||||||
g_thread_set_priority_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
|
#define HAVE_G_THREAD_IMPL_INIT
|
||||||
|
Loading…
Reference in New Issue
Block a user