Changeset: 3fcd061c149f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3fcd061c149f Modified Files: gdk/gdk_atoms.c gdk/gdk_private.h gdk/gdk_utils.c Branch: Jul2017 Log Message:
Free unknown atoms descriptions while shutting down the server diffs (47 lines): diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c --- a/gdk/gdk_atoms.c +++ b/gdk/gdk_atoms.c @@ -2182,3 +2182,20 @@ ATOMunknown_name(int i) assert(unknown[-i]); return unknown[-i]; } + +void +ATOMunknown_clean(void) +{ + int i; + + MT_lock_set(&GDKthreadLock); + for (i = 1; i < MAXATOMS; i++) { + if(unknown[i]) { + GDKfree(unknown[i]); + unknown[i] = NULL; + } else { + break; + } + } + MT_lock_unset(&GDKthreadLock); +} diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h --- a/gdk/gdk_private.h +++ b/gdk/gdk_private.h @@ -36,6 +36,8 @@ enum heaptype { __attribute__((__visibility__("hidden"))); __hidden str ATOMunknown_name(int a) __attribute__((__visibility__("hidden"))); +__hidden void ATOMunknown_clean(void) + __attribute__((__visibility__("hidden"))); __hidden int BATcheckhash(BAT *b) __attribute__((__visibility__("hidden"))); __hidden int BATcheckimprints(BAT *b) diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c --- a/gdk/gdk_utils.c +++ b/gdk/gdk_utils.c @@ -809,6 +809,7 @@ GDKreset(int status, int exit) MT_lock_unset(&GDKthreadLock); //gdk_system_reset(); CHECK OUT } + ATOMunknown_clean(); #ifdef NEED_MT_LOCK_INIT MT_lock_destroy(&MT_system_lock); #if defined(USE_PTHREAD_LOCKS) && defined(ATOMIC_LOCK) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list