summaryrefslogtreecommitdiff
path: root/navit/config_.c
diff options
context:
space:
mode:
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2010-11-03 14:29:08 +0000
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2010-11-03 14:29:08 +0000
commit598040f5daa448837abc4b1659dbb0bae65b51fa (patch)
treea71f9f86c5d4b279155c8e515c9ea9db47a79541 /navit/config_.c
parent44f608feadbb4aefcc5fd1c2c4e80adb6346a7a1 (diff)
downloadnavit-svn-598040f5daa448837abc4b1659dbb0bae65b51fa.tar.gz
Add:Core:Cleanup on terminate signal
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@3641 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/config_.c')
-rw-r--r--navit/config_.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/navit/config_.c b/navit/config_.c
index f54a179b..58db9274 100644
--- a/navit/config_.c
+++ b/navit/config_.c
@@ -53,10 +53,23 @@ config_destroy(struct config *this_)
}
static void
+config_terminate(int sig)
+{
+ struct attr_iter *iter=config_attr_iter_new();
+ struct attr navit;
+ dbg(0,"terminating\n");
+ while (config_get_attr(config, attr_navit, &navit, iter))
+ navit_destroy(navit.u.navit);
+ config_attr_iter_destroy(iter);
+ config_destroy(config);
+}
+
+static void
config_new_int(void)
{
config=g_new0(struct config, 1);
config->cbl=callback_list_new();
+ signal(SIGTERM, config_terminate);
}
int