summaryrefslogtreecommitdiffstats
path: root/src/server/altservers.c
diff options
context:
space:
mode:
authorSimon Rettberg2013-11-12 18:37:30 +0100
committerSimon Rettberg2013-11-12 18:37:30 +0100
commitec507460768fb9ebe0bf037855864e9a94f3b36a (patch)
treed724ad0e6f70365d73539362aba6ffa5b7444d40 /src/server/altservers.c
parentMerge branch 'simon' of dnbd3:dnbd3 into simon (diff)
downloaddnbd3-ec507460768fb9ebe0bf037855864e9a94f3b36a.tar.gz
dnbd3-ec507460768fb9ebe0bf037855864e9a94f3b36a.tar.xz
dnbd3-ec507460768fb9ebe0bf037855864e9a94f3b36a.zip
[SERVER] Save cache maps every 30 mins
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 );