glib/gobject
Marco Trevisan (Treviño) 468246bb3b gobject: Ensure an object has toggle references before notifying it
When an object with toggle reference is notifying a change we just
assume that this is true because of previous checks.
However, while locking, another thread may have removed the toggle
reference causing the waiting thread to abort (as no handler is set at
that point).

To avoid this, once we've got the toggle references mutex lock, check
again if the object has toggle reference, and if it's not the case
anymore just ignore the request.

Add a test that triggers this, it's not 100% happening because this is
of course timing related, but this is very close to the truth.

Fixes: #2394
2021-09-20 17:56:25 +02:00
..
tests gobject: Ensure an object has toggle references before notifying it 2021-09-20 17:56:25 +02:00
gatomicarray.c gatomicarray: suppress valgrind memory leak warnings 2020-11-24 08:10:58 -06:00
gatomicarray.h gatomicarray: Drop volatile qualifier from GAtomicArray API 2020-11-20 14:40:19 +00:00
gbinding.c docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gbinding.h docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gboxed.c docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gboxed.h gobject/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gclosure.c Revert "Merge branch 'fix/gclosure-invoke-type-annotation' into 'main'" 2021-08-29 20:56:08 +00:00
gclosure.h docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
genums.c genums: Add missing (transfer) and (nullable) return annotations 2020-12-11 23:48:35 +00:00
genums.h gobject/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
glib-enumtypes.c.template Fix a Unicode typo 2021-07-29 10:09:27 -04:00
glib-enumtypes.h.template build: Rename gobjectenumtypes.[ch] to glib-enumtypes.[ch] 2019-03-04 11:12:59 +00:00
glib-genmarshal.in glib-genmarshal: close output file 2021-03-03 12:24:29 +06:00
glib-mkenums.in glib-mkenums: Parse and skip deprecation/availability annotations 2021-03-11 13:37:49 +00:00
glib-types.h boxed: Register GPatternSpec as boxed type 2021-04-27 16:25:09 +02:00
gmarshal.c minor typos in the documentation (a/an) 2019-08-24 19:14:05 +00:00
gmarshal.h gmarshal: Move marshaller documentation comments to above functions 2019-03-04 12:33:17 +00:00
gobject_gdb.py py: Various flake8 cleanups 2020-11-17 15:50:07 +00:00
gobject_probes.d Add missing semicolons to gobject_probes.d 2012-10-15 19:48:44 -04:00
gobject_trace.h build: Disable dtrace probes under static analysis 2019-09-05 14:16:58 +01:00
gobject-autocleanups.h gobject: Add g_autoptr() support for GTypeClass, GEnumClass, GFlagsClass 2018-05-15 15:38:33 +01:00
gobject-query.c Spelling: fix spelling of specify 2018-09-25 14:34:48 +01:00
gobject.c gobject: Ensure an object has toggle references before notifying it 2021-09-20 17:56:25 +02:00
gobject.h docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gobject.rc.in meson: build Windows resource files 2018-01-04 22:19:30 +01:00
gobject.stp.in glib: Namespace global tapset variables by soname 2016-11-23 10:50:39 +00:00
gobjectnotifyqueue.c gobject/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gparam.c docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gparam.h docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gparamspecs.c Clarify GValue documentation 2021-07-12 10:40:33 +00:00
gparamspecs.h docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gsignal.c doc: Explicitly said, that no null term. is needed 2021-09-06 11:23:14 +00:00
gsignal.h docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gsourceclosure.c gobject: Drop use of volatile from get_type() macros 2020-11-20 14:40:19 +00:00
gsourceclosure.h gobject/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gtype-private.h Use the GObject hole on 64bit arches for some flags to improve performance 2019-09-02 15:48:32 +02:00
gtype.c docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gtype.h docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gtypemodule.c docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gtypemodule.h docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gtypeplugin.c docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gtypeplugin.h gobject: Standardise on the term ‘instantiatable’ 2020-11-02 17:22:01 +00:00
gvalue.c docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gvalue.h docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gvaluearray.c gvaluearray: Mark the whole of GValueArray as deprecated 2019-03-15 11:09:36 +00:00
gvaluearray.h Annotate various types and macros as deprecated 2019-05-30 10:39:11 +01:00
gvaluecollector.h docs: Start stanzas with a single paragraph 2021-08-02 13:22:23 +01:00
gvaluetransform.c gobject/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gvaluetypes.c g_value_set_string description: clarified (unified), that v_string is a copy. 2021-06-23 05:50:59 +00:00
gvaluetypes.h GValue: Add interned string support 2020-05-19 17:52:55 +02:00
libgobject-gdb.py.in Rename gdb macros with _gdb suffix to avoid ns clashes 2016-05-23 10:52:10 -04:00
meson.build Meson: Override every dependency glib provides 2020-04-05 00:34:04 -04:00