ecore signal write - save and restore errno since may be on mainloop
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Thu, 11 Jan 2018 08:25:24 +0000 (17:25 +0900)
committerWonki Kim <wonki_.kim@samsung.com>
Wed, 17 Jan 2018 09:19:27 +0000 (18:19 +0900)
now i disabled the signal thread watcher ... save+restore errno.

src/lib/ecore/ecore_signal.c

index 4e0b484..e640704 100644 (file)
@@ -11,6 +11,7 @@
 #include <unistd.h>
 #include <assert.h>
 #include <fcntl.h>
+#include <errno.h>
 #include <pthread.h>
 
 #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