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 -- [email protected]
To unsubscribe send an email to [email protected]