From 34400ee551b0c1e15c029342724a20acd8e9375e Mon Sep 17 00:00:00 2001 From: VilhoRaatikka Date: Fri, 10 Oct 2014 23:53:55 +0300 Subject: [PATCH] Fixed the use of nanosleep which removed a spinloop and degraded the performance dramatically. --- server/core/gateway.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/server/core/gateway.c b/server/core/gateway.c index 34783bc52..8e6dbb5ee 100644 --- a/server/core/gateway.c +++ b/server/core/gateway.c @@ -1671,9 +1671,11 @@ static void log_flush_cb( void* arg) { ssize_t timeout_ms = *(ssize_t *)arg; - const struct timespec ts1 = {0, 1000000*timeout_ms}; - struct timespec ts2; + struct timespec ts1; + ts1.tv_sec = timeout_ms/1000; + ts1.tv_nsec = (timeout_ms%1000)*1000000; + LOGIF(LM, (skygw_log_write(LOGFILE_MESSAGE, "Started MaxScale log flusher."))); while (!do_exit) { @@ -1681,7 +1683,7 @@ static void log_flush_cb( skygw_log_flush(LOGFILE_MESSAGE); skygw_log_flush(LOGFILE_TRACE); skygw_log_flush(LOGFILE_DEBUG); - nanosleep(&ts1, &ts2); + nanosleep(&ts1, NULL); } LOGIF(LM, (skygw_log_write(LOGFILE_MESSAGE, "Finished MaxScale log flusher.")));