glib/gobject
Alexander Larsson b1dd594a22 Remove atomics from g_clear_object/g_clear_pointer
Practically no caller of these functions require atomic behaviour,
but the atomics are much slower than normal operations, which makes
it desirable to get rid of them. We have not done this before because
that would be a break of the ABI.

However, I recently looked into this and it seems that even if the
atomics *are* used for g_clear_* it is not ever safe to use this.  The
atomics protects two threads that are racing to free a global/shared
object from freeing the object twice. However, any *user* of the global
object have no protection from the object being freed while in use,
because there is no paired operation the reads and refs the object
as an atomic unit (nor can such an operation be implemented using
purely atomic ops).

So, since nothing could safely have used the atomic aspects of these
functions I consider it acceptable to just remove it.

https://bugzilla.gnome.org/show_bug.cgi?id=733969
2014-07-30 15:11:01 +02:00
..
tests test: add test for explicit-notify properties 2014-06-06 10:25:48 -04:00
.gitignore Stop using glib-genmarshal at build time 2011-06-20 17:24:07 -04:00
ChangeLog Update README files to refer to git 2009-03-31 19:39:16 -04:00
gatomicarray.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gatomicarray.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gbinding.c gbinding: warn on failed value transformation 2014-03-17 17:43:19 -04:00
gbinding.h GObject: Remove more leftover markup from headers 2014-03-07 06:10:36 -05:00
gboxed.c gobject: box GVariantDict 2014-02-04 12:24:19 +00:00
gboxed.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gclosure.c Fix typo 2014-07-05 20:27:58 -05:00
gclosure.h docs: Remove <!-- --> comment before plural s 2014-04-24 13:42:37 +02:00
genums.c Eradicate links and xrefs 2014-02-08 12:26:56 -05:00
genums.h Updated FSF's address 2014-01-31 14:31:55 +01:00
glib-genmarshal.c Updated FSF's address 2014-01-31 14:31:55 +01:00
glib-mkenums.in glib-mkenums: fix handling of forward enum declarations 2012-02-07 13:32:22 -05:00
glib-types.h gobject: box GVariantDict 2014-02-04 12:24:19 +00:00
gmarshal.c all: remove use of 'register' keyword 2014-06-28 13:07:52 -04:00
gmarshal.h gmarshal.h: replace "extern" with GLIB_AVAILABLE_IN_ALL 2013-01-13 13:13:55 -05:00
gmarshal.list Update the comment in gmarshal.list 2012-06-23 17:53:22 -04:00
gobject_probes.d Add missing semicolons to gobject_probes.d 2012-10-15 19:48:44 -04:00
gobject_trace.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gobject-query.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gobject.c Remove atomics from g_clear_object/g_clear_pointer 2014-07-30 15:11:01 +02:00
gobject.h gtype: guard uses of new fundamental type check 2014-06-06 10:49:29 -04:00
gobject.py Try to make gobject.py work with both pythons 2014-06-16 15:25:42 -04:00
gobject.rc.in Update the year in the *.rc.in files 2011-06-07 08:55:31 +08:00
gobject.stp.in Add dtrace and systemtap support for gobject 2010-05-27 14:51:41 -04:00
gobjectnotifyqueue.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gparam.c gparam: Remove unnecessary conditionals around preconditions 2014-06-12 13:38:27 -04:00
gparam.h gparam: change value of G_PARAM_EXPLICIT_NOTIFY 2014-06-10 19:04:35 -04:00
gparamspecs.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gparamspecs.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gsignal.c all: remove use of 'register' keyword 2014-06-28 13:07:52 -04:00
gsignal.h gsignal: Add an example to the g_signal_connect_swapped() documentation 2014-06-23 12:30:51 +01:00
gsourceclosure.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gsourceclosure.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gtype-private.h gobject: move _g_type_debug_flags from gtype.h to gtype-private.h 2014-06-28 14:00:32 -04:00
gtype.c all: remove use of 'register' keyword 2014-06-28 13:07:52 -04:00
gtype.h gobject: move _g_type_debug_flags from gtype.h to gtype-private.h 2014-06-28 14:00:32 -04:00
gtypemodule.c GObject: Convert docs to markdown 2014-02-01 10:22:45 -05:00
gtypemodule.h docs: Replace <function> XML tag with back ticks 2014-05-31 19:22:15 +01:00
gtypeplugin.c Annotate all examples with their language 2014-02-01 15:11:49 -05:00
gtypeplugin.h GObject: Remove more leftover markup from headers 2014-03-07 06:10:36 -05:00
gvalue.c gvalue: New g_value_init_from_instance 2014-06-24 14:21:10 -04:00
gvalue.h gvalue: New g_value_init_from_instance 2014-06-24 14:21:10 -04:00
gvaluearray.c Docs: Drop entities, switch away from sgml mode 2014-02-09 02:07:26 -05:00
gvaluearray.h Updated FSF's address 2014-01-31 14:31:55 +01:00
gvaluecollector.h docs: Remove <!-- --> comment before plural s 2014-04-24 13:42:37 +02:00
gvaluetransform.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gvaluetypes.c Updated FSF's address 2014-01-31 14:31:55 +01:00
gvaluetypes.h Updated FSF's address 2014-01-31 14:31:55 +01:00
libgobject-gdb.py.in Avoid shadowing the dir builtin 2010-12-03 14:08:36 -05:00
Makefile.am gobject: try to link with -Wl,-z,nodelete 2014-04-10 01:38:41 -04:00
makefile.msc.in gobject/: fully remove gobjectalias hacks 2010-07-07 19:40:48 -04:00
marshal-genstrings.pl Hacky script to fix up your .msc.in files on windows. Dunno if this is a 2001-08-04 15:49:55 +00:00