diff --git a/src/lib/ecore/ecore_signal.c b/src/lib/ecore/ecore_signal.c index 4e0b4842ba..e640704212 100644 --- a/src/lib/ecore/ecore_signal.c +++ b/src/lib/ecore/ecore_signal.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include "Ecore.h" @@ -155,7 +156,12 @@ _ecore_signal_callback(int sig, siginfo_t *si, void *foo EINA_UNUSED) #endif sdata.sig = sig; sdata.info = *si; - if (sdata.sig >= 0) write(sig_pipe[1], &sdata, sizeof(sdata)); + if (sdata.sig >= 0) + { + int err = errno; + write(sig_pipe[1], &sdata, sizeof(sdata)); + errno = err; + } } static void