summaryrefslogtreecommitdiffstats
path: root/tools/syslogd.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2012-06-04 12:01:24 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2012-06-04 12:01:24 +0200
commit55659b96a38d926445c9ae4123df4b1d29e18c32 (patch)
treeeab6e616e3b82a1dd76b0b5cbef3052ee837525f /tools/syslogd.c
parent9020647cdcdb0ef132491838e36c870f4e4e90ea (diff)
downloadrsyslog-55659b96a38d926445c9ae4123df4b1d29e18c32.tar.gz
rsyslog-55659b96a38d926445c9ae4123df4b1d29e18c32.tar.xz
rsyslog-55659b96a38d926445c9ae4123df4b1d29e18c32.zip
add small delay (50ms) after sending shutdown message
There seem to be cases where the shutdown message is otherwise not processed, not even on an idle system. Thanks to Marcin for bringing this problem up.
Diffstat (limited to 'tools/syslogd.c')
-rw-r--r--tools/syslogd.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/syslogd.c b/tools/syslogd.c
index 7872cb5f..0988d462 100644
--- a/tools/syslogd.c
+++ b/tools/syslogd.c
@@ -1072,6 +1072,11 @@ die(int sig)
errno = 0;
logmsgInternal(NO_ERRCODE, LOG_SYSLOG|LOG_INFO, (uchar*)buf, 0);
}
+ /* we sleep for 50ms to give the queue a chance to pick up the exit message;
+ * otherwise we have seen cases where the message did not make it to log
+ * files, even on idle systems.
+ */
+ srSleep(0, 50);
/* drain queue (if configured so) and stop main queue worker thread pool */
DBGPRINTF("Terminating main queue...\n");