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 | 598040f5daa448837abc4b1659dbb0bae65b51fa (patch) | |
tree | a71f9f86c5d4b279155c8e515c9ea9db47a79541 /navit/config_.c | |
parent | 44f608feadbb4aefcc5fd1c2c4e80adb6346a7a1 (diff) | |
download | navit-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_.c | 13 |
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 |