diff options
author | Lennart Poettering <lennart@poettering.net> | 2007-10-30 18:35:08 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2007-10-30 18:35:08 +0000 |
commit | 5058a1e9ed700264df78409e0d629fb18a0263ef (patch) | |
tree | 841d15fa89fd507362298f40b992e1420136a215 | |
parent | 111b7591bdb18783799981c1e341ed2d9fe79ef5 (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
-rw-r--r-- | src/pulse/mainloop-signal.c | 6 |
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) { |