summaryrefslogtreecommitdiffstats
path: root/src/server/altservers.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/altservers.c')
-rw-r--r--src/server/altservers.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/server/altservers.c b/src/server/altservers.c
index 8962e15..7360791 100644
--- a/src/server/altservers.c
+++ b/src/server/altservers.c
@@ -5,6 +5,7 @@
#include "memlog.h"
#include "helper.h"
#include "globals.h"
+#include "image.h"
#include <stdlib.h>
#include <unistd.h>
#include <sys/epoll.h>
@@ -344,6 +345,7 @@ static void *altservers_main(void *data)
dnbd3_host_t servers[ALTS + 1];
serialized_buffer_t serialized;
struct timespec start, end;
+ time_t nextCacheMapSave = time(NULL) + 120;
setThreadName( "altserver-check" );
blockNoncriticalSignals();
@@ -518,6 +520,13 @@ static void *altservers_main(void *data)
pending[itLink] = NULL;
pthread_mutex_unlock( &pendingLockConsume );
}
+ // Save cache maps of all images if applicable
+ const time_t now = time(NULL);
+ if (now > nextCacheMapSave) {
+ nextCacheMapSave = now + SERVER_CACHE_MAP_SAVE_INTERVAL;
+ printf("[DEBUG] Saving cache maps...\n");
+ image_saveAllCacheMaps();
+ }
}
cleanup: ;
if ( fdEpoll != -1 ) close( fdEpoll );