Merge branch 'th/weak-ref-lock-2' into 'main'

[th/weak-ref-lock-2] gobject: use per-object bit-lock instead of global RWLock for GWeakRef

Closes #743

See merge request GNOME/glib!3834
This commit is contained in:
Philip Withnall
2024-01-31 16:51:50 +00:00
6 changed files with 758 additions and 182 deletions

View File

@@ -23,6 +23,7 @@
#include <glib.h>
#include "gwakeup.h"
#include "gstdioprivate.h"
#include "gdatasetprivate.h"
/* gcc defines __SANITIZE_ADDRESS__, clang sets the address_sanitizer
* feature flag.
@@ -291,6 +292,11 @@ typedef struct {
/* See gutils.c */
gboolean (* g_set_prgname_once) (const gchar *prgname);
gpointer (*g_datalist_id_update_atomic) (GData **datalist,
GQuark key_id,
GDataListUpdateAtomicFunc callback,
gpointer user_data);
/* Add other private functions here, initialize them in glib-private.c */
} GLibPrivateVTable;
@@ -327,4 +333,8 @@ guint g_uint_hash (gconstpointer v);
#undef G_THREAD_LOCAL
#endif
/* Convenience wrapper to call private g_datalist_id_update_atomic() function. */
#define _g_datalist_id_update_atomic(datalist, key_id, callback, user_data) \
(GLIB_PRIVATE_CALL (g_datalist_id_update_atomic) ((datalist), (key_id), (callback), (user_data)))
#endif /* __GLIB_PRIVATE_H__ */