On 01/12/2017 08:11 AM, Federico Mena Quintero wrote:
> How does one get this to happen?  
> 
> Is it only a problem if two threads race to pass the same type_name to
> g_type_register_*()?
> 
> Or if a library defines a shitty foo_get_type() without the g_once
> magic from G_DEFINE_TYPE(), and gets called from two threads?

Even the g_once magic is not enough because they would have separate
data sections for the static cached type id. So the get_type() for the
failed registration would have G_TYPE_INVALID.

But even if you were careful to do a g_type_from_name() as a fallback,
you still risk the statically linked implementations being incompatible
from version skew.

_______________________________________________
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Reply via email to