From d39c427e9acd810c9337bd77eb64996ad5fb4c2d Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 12 Nov 2013 18:52:17 +0100 Subject: [SERVER] Shut down altservers finder properly --- src/server/altservers.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/server/altservers.c') diff --git a/src/server/altservers.c b/src/server/altservers.c index 7360791..5317936 100644 --- a/src/server/altservers.c +++ b/src/server/altservers.c @@ -51,6 +51,7 @@ void altservers_init() void altservers_shutdown() { if ( !initDone ) return; + write( signalPipe, "", 1 ); // Wake altservers thread up pthread_join( altThread, NULL ); } @@ -345,7 +346,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; + time_t nextCacheMapSave = time( NULL ) + 120; setThreadName( "altserver-check" ); blockNoncriticalSignals(); @@ -386,6 +387,7 @@ static void *altservers_main(void *data) memlogf( "[WARNING] epoll_wait() error in uplink_connector" ); usleep( 100000 ); } + if ( _shutdown ) goto cleanup; // Empty pipe do { ret = read( readPipe, buffer, sizeof buffer ); @@ -521,10 +523,10 @@ static void *altservers_main(void *data) pthread_mutex_unlock( &pendingLockConsume ); } // Save cache maps of all images if applicable - const time_t now = time(NULL); - if (now > nextCacheMapSave) { + const time_t now = time( NULL ); + if ( now > nextCacheMapSave ) { nextCacheMapSave = now + SERVER_CACHE_MAP_SAVE_INTERVAL; - printf("[DEBUG] Saving cache maps...\n"); + printf( "[DEBUG] Saving cache maps...\n" ); image_saveAllCacheMaps(); } } -- cgit v1.2.3-55-g7522