diff options
author | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2010-11-03 14:29:08 +0000 |
---|---|---|
committer | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2010-11-03 14:29:08 +0000 |
commit | e82e5aa352e1fc766ea8cc83a1299513a9598de7 (patch) | |
tree | a71f9f86c5d4b279155c8e515c9ea9db47a79541 /navit/config_.c | |
parent | 614414eeae85298574c87882d052709889f19a17 (diff) | |
download | navit-e82e5aa352e1fc766ea8cc83a1299513a9598de7.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_.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/navit/config_.c b/navit/config_.c index f54a179b5..58db92749 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 |