+/*
+ * Clean up memory pool periodically
+ *
+ */
+static time_t last_garbage_collection = 0;
+const int garbage_interval = 24 * 60 * 60; /* garbage collect every 24 hours */
+
+void garbage_collect_memory_pool()
+{
+ time_t now;
+
+ Dmsg0(200, "garbage collect memory pool\n");
+ P(mutex);
+ if (last_garbage_collection == 0) {
+ last_garbage_collection = time(NULL);
+ V(mutex);
+ return;
+ }
+ now = time(NULL);
+ if (now >= last_garbage_collection + garbage_interval) {
+ last_garbage_collection = now;
+ V(mutex);
+ close_memory_pool();
+ } else {
+ V(mutex);
+ }
+}