summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2007-11-01 01:42:34 +0000
committerLennart Poettering <lennart@poettering.net>2007-11-01 01:42:34 +0000
commit005ed41c3f83430ce936f55378c68f1e29557aeb (patch)
tree0f84b78ef95b156d89a5b3d5ed25baff57d3d4b1
parent44d7c9ad9bcfd8ab55d4ef7f6595c7ffd65da35d (diff)
save and restore errno in sig handler
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2011 fefdeb5f-60dc-0310-8127-8f9354f1896f
-rw-r--r--src/daemon/cpulimit.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/daemon/cpulimit.c b/src/daemon/cpulimit.c
index ab212129..b77dd443 100644
--- a/src/daemon/cpulimit.c
+++ b/src/daemon/cpulimit.c
@@ -113,6 +113,9 @@ static void write_err(const char *p) {
/* The signal handler, called on every SIGXCPU */
static void signal_handler(int sig) {
+ int saved_errno;
+
+ saved_errno = errno;
pa_assert(sig == SIGXCPU);
if (phase == PHASE_IDLE) {
@@ -150,6 +153,8 @@ static void signal_handler(int sig) {
write_err("Hard CPU time limit exhausted, terminating forcibly.\n");
_exit(1); /* Forced exit */
}
+
+ errno = saved_errno;
}
/* Callback for IO events on the FIFO */