Rewrite the entire internal signal handling/wakeup.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Fri, 19 Apr 2013 21:39:23 +0000 (23:39 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Fri, 19 Apr 2013 21:39:23 +0000 (23:39 +0200)
commit3fd8650ccf3da3960a946d8ac9abc305aec399ce
tree4766cb86ca0cf080e9e1f9d4d284b7c2a95edd02
parent8d2593119a04e6b30d5c36a722a77ee32f1d454b
Rewrite the entire internal signal handling/wakeup.

We now solve things in a much less racy way, sending SIGUSR1 internally,
which is blocked except in poll/epoll. This should be more stable,
require no more fixed-length wakeups (no more wakeup every 20 ms in
each server), and upset Valgrind less.

However, it's also complex to get right, so it might introduce new bugs.
14 files changed:
acceptor.cpp
accesslog.cpp
httpinput.cpp
main.cpp
server.cpp
server.h
serverpool.cpp
stats.cpp
stream.cpp
thread.cpp
thread.h
udpinput.cpp
util.cpp
util.h