save and restore errno in the sig handler
authorLennart Poettering <lennart@poettering.net>
Tue, 30 Oct 2007 18:35:08 +0000 (18:35 +0000)
committerLennart Poettering <lennart@poettering.net>
Tue, 30 Oct 2007 18:35:08 +0000 (18:35 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2004 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulse/mainloop-signal.c

index 7d3017e..e41ed14 100644 (file)
@@ -67,10 +67,16 @@ static pa_io_event* io_event = NULL;
 static pa_signal_event *signals = NULL;
 
 static void signal_handler(int sig) {
+    int saved_errno;
+
+    saved_errno = errno;
+
 #ifndef HAVE_SIGACTION
     signal(sig, signal_handler);
 #endif
     pa_write(signal_pipe[1], &sig, sizeof(sig), NULL);
+
+    errno = saved_errno;
 }
 
 static void dispatch(pa_mainloop_api*a, int sig) {