[#4947] Restart syscalls in taskd graceful signal handlers
diff --git a/Allura/allura/command/taskd.py b/Allura/allura/command/taskd.py
index c6a6451..12736a5 100644
--- a/Allura/allura/command/taskd.py
+++ b/Allura/allura/command/taskd.py
@@ -32,6 +32,12 @@
signal.signal(signal.SIGHUP, self.graceful_restart)
signal.signal(signal.SIGTERM, self.graceful_stop)
signal.signal(signal.SIGUSR1, self.log_current_task)
+ # restore default behavior of not interrupting system calls
+ # see http://docs.python.org/library/signal.html#signal.siginterrupt
+ # and http://linux.die.net/man/3/siginterrupt
+ signal.siginterrupt(signal.SIGHUP, False)
+ signal.siginterrupt(signal.SIGTERM, False)
+ signal.siginterrupt(signal.SIGUSR1, False)
self.worker()
def graceful_restart(self, signum, frame):