Closed D-Bus and GObject signals fired together make code nasty
@gdesmott
Submitted by Guillaume Desmottes Assigned to Telepathy bugs list
Description
Channels have to fire the D-Bus Closed signal when disposing (if the channel was not already closed of course). Most of the channel managers catch the GObject closed signal so they can drop their ref when the channel has been closed.
Currently all the channels mgr do this kind of trick when closing all the channels: GHashTable *tmp = priv->tubes_channels; priv->tubes_channels = NULL; g_hash_table_destroy (tmp);
So the closed callback knows we are disposing and do nothing.
We could avoid these hacks by not firing the GObject signal when disposing.
Unfortunately that's currently not possible.