summaryrefslogtreecommitdiffstats
path: root/src/pulse/mainloop-signal.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2007-10-30 18:35:08 +0000
committerLennart Poettering <lennart@poettering.net>2007-10-30 18:35:08 +0000
commit5058a1e9ed700264df78409e0d629fb18a0263ef (patch)
tree841d15fa89fd507362298f40b992e1420136a215 /src/pulse/mainloop-signal.c
parent111b7591bdb18783799981c1e341ed2d9fe79ef5 (diff)
save and restore errno in the sig handler
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2004 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/pulse/mainloop-signal.c')
-rw-r--r--src/pulse/mainloop-signal.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/pulse/mainloop-signal.c b/src/pulse/mainloop-signal.c
index 7d3017e2..e41ed14c 100644
--- a/src/pulse/mainloop-signal.c
+++ b/src/pulse/mainloop-signal.c
@@ -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) {