Postpone server cleanup until after unref

Add a new signal, server destroyed, that is supposed to run the clean up
tasks of server disconnected. This is so that some structures will stay
around longer.
This commit is contained in:
ailin-nemui 2018-01-03 12:26:02 +01:00
commit c9b3d87eb7
5 changed files with 11 additions and 10 deletions

View file

@ -104,7 +104,7 @@ static void sig_connected(SERVER_REC *server)
MODULE_DATA_SET(server, g_new0(MODULE_SERVER_REC, 1));
}
static void sig_disconnected(SERVER_REC *server)
static void sig_destroyed(SERVER_REC *server)
{
void *data = MODULE_DATA(server);
g_free(data);
@ -203,7 +203,7 @@ void fe_common_core_init(void)
settings_check();
signal_add_first("server connected", (SIGNAL_FUNC) sig_connected);
signal_add_last("server disconnected", (SIGNAL_FUNC) sig_disconnected);
signal_add_last("server destroyed", (SIGNAL_FUNC) sig_destroyed);
signal_add_first("channel created", (SIGNAL_FUNC) sig_channel_created);
signal_add_last("channel destroyed", (SIGNAL_FUNC) sig_channel_destroyed);
@ -249,7 +249,7 @@ void fe_common_core_deinit(void)
signal_remove("setup changed", (SIGNAL_FUNC) sig_setup_changed);
signal_remove("server connected", (SIGNAL_FUNC) sig_connected);
signal_remove("server disconnected", (SIGNAL_FUNC) sig_disconnected);
signal_remove("server destroyed", (SIGNAL_FUNC) sig_destroyed);
signal_remove("channel created", (SIGNAL_FUNC) sig_channel_created);
signal_remove("channel destroyed", (SIGNAL_FUNC) sig_channel_destroyed);
}