/* make mono happy - this is evil though... */
#undef SIGPWR
-#define ECORE_SIGNAL_THREAD 1
+//#define ECORE_SIGNAL_THREAD 1
static void _ecore_signal_exe_exit_delay(void *data, const Efl_Event *event);
static void _ecore_signal_waitpid(Eina_Bool once, siginfo_t info);
{
Signal_Data sdata;
+#ifdef ECORE_SIGNAL_THREAD
+ if (eina_thread_self() != sig_thread)
+ fprintf(stderr, "Ecore sig handler NOT called from sigwatcher thread\n");
+#endif
sdata.sig = sig;
sdata.info = *si;
if (sdata.sig >= 0) write(sig_pipe[1], &sdata, sizeof(sdata));
{
struct sigaction sa;
-#ifdef ECORE_SIGNAL_THREAD
- if (eina_thread_self() != sig_thread)
- {
- fprintf(stderr, "Ecore sig handler NOT called from sigwatcher thread\n");
- }
-#endif
sa.sa_sigaction = func;
sa.sa_flags = SA_RESTART | SA_SIGINFO;
sigemptyset(&sa.sa_mask);
#endif
}
+#ifdef ECORE_SIGNAL_THREAD
static void *
_ecore_signal_thread_watcher(void *data EINA_UNUSED, Eina_Thread t)
{
for (;;) pause();
return NULL;
}
+#endif
static void
_ecore_signal_pipe_init(void)
void
_ecore_signal_init(void)
{
-#ifndef _WIN32
+#ifdef ECORE_SIGNAL_THREAD
+# ifndef _WIN32
sigset_t newset;
sigemptyset(&newset);
sigaddset(&newset, SIGQUIT);
sigaddset(&newset, SIGINT);
sigaddset(&newset, SIGTERM);
-# ifdef SIGPWR
+# ifdef SIGPWR
sigaddset(&newset, SIGPWR);
-# endif
+# endif
pthread_sigmask(SIG_BLOCK, &newset, NULL);
+# endif
#endif
_ecore_signal_pipe_init();
ecore_fork_reset_callback_add(_ecore_signal_cb_fork, NULL);