Changeset: 4a7a8181d617 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/4a7a8181d617 Modified Files: monetdb5/mal/mal.c monetdb5/mal/mal_embedded.c monetdb5/mal/mal_namespace.c monetdb5/mal/mal_private.h Branch: default Log Message:
Reinstate mal_namespace_reset, and do it even more thoroughly. diffs (66 lines): diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c --- a/monetdb5/mal/mal.c +++ b/monetdb5/mal/mal.c @@ -146,6 +146,7 @@ mal_reset(void) memset((char *) monet_cwd, 0, sizeof(monet_cwd)); memset((char *) monet_characteristics, 0, sizeof(monet_characteristics)); + mal_namespace_reset(); GDKreset(0); // terminate all other threads } diff --git a/monetdb5/mal/mal_embedded.c b/monetdb5/mal/mal_embedded.c --- a/monetdb5/mal/mal_embedded.c +++ b/monetdb5/mal/mal_embedded.c @@ -190,6 +190,7 @@ malEmbeddedReset(void) //remove extra memset((char *) monet_cwd, 0, sizeof(monet_cwd)); memset((char *) monet_characteristics, 0, sizeof(monet_characteristics)); + mal_namespace_reset(); GDKreset(0); // terminate all other threads embeddedinitialized = false; } diff --git a/monetdb5/mal/mal_namespace.c b/monetdb5/mal/mal_namespace.c --- a/monetdb5/mal/mal_namespace.c +++ b/monetdb5/mal/mal_namespace.c @@ -614,6 +614,27 @@ initNamespace(void) /* ! please keep this list sorted for easier maintenance ! */ } +void +mal_namespace_reset(void) +{ + struct namespace *ns; + + /* assume we are at the end of the server session */ + MT_lock_set(&mal_namespaceLock); + memset(hash, 0, sizeof(hash)); + while (namespace) { + ns = namespace->next; + if (namespace != &namespace1) + GDKfree(namespace); + namespace = ns; + } + namespace1 = (struct namespace) { + .count = 0, + }; + namespace = &namespace1; + MT_lock_unset(&mal_namespaceLock); +} + static const char * findName(const char *nme, size_t len, bool allocate) { diff --git a/monetdb5/mal/mal_private.h b/monetdb5/mal/mal_private.h --- a/monetdb5/mal/mal_private.h +++ b/monetdb5/mal/mal_private.h @@ -69,6 +69,9 @@ void mal_linker_reset(void) void mal_module_reset(void) __attribute__((__visibility__("hidden"))); +void mal_namespace_reset(void) + __attribute__((__visibility__("hidden"))); + void mal_resource_reset(void) __attribute__((__visibility__("hidden"))); _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org