diff options
author | Simon Rettberg | 2013-11-12 18:37:30 +0100 |
---|---|---|
committer | Simon Rettberg | 2013-11-12 18:37:30 +0100 |
commit | ec507460768fb9ebe0bf037855864e9a94f3b36a (patch) | |
tree | d724ad0e6f70365d73539362aba6ffa5b7444d40 /src/server/altservers.c | |
parent | Merge branch 'simon' of dnbd3:dnbd3 into simon (diff) | |
download | dnbd3-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.c | 9 |
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 ); |