Hello. Either this or one of the two other signal patches from you broke the mac osx build.
https://travis-ci.org/Enlightenment/efl/jobs/325743808 Raw text log file: https://api.travis-ci.org/v3/job/325743808/log.txt regards Stefan Schmidt On 01/06/2018 10:51 AM, Carsten Haitzler wrote: > raster pushed a commit to branch master. > > http://git.enlightenment.org/core/efl.git/commit/?id=2fb80270ba978d3d30915007b275cdbd57b3e433 > > commit 2fb80270ba978d3d30915007b275cdbd57b3e433 > Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com> > Date: Sat Jan 6 17:37:12 2018 +0900 > > efl thread signal masks - fix up for various threads manually created > > so xine module plus 2 eina dbug threads didnt set up signal > blocking/masks correctly. xine use ssigprocmask not pthread_sigmask > and the other 2 didnt even bother at all. fix this so these threads > all block most of these commnly caught signals so these threads never > get them > --- > src/lib/eina/eina_debug_cpu.c | 22 ++++++++++++++++++++++ > src/lib/eina/eina_debug_timer.c | 21 +++++++++++++++++++++ > src/modules/emotion/xine/emotion_xine.c | 4 ++-- > 3 files changed, 45 insertions(+), 2 deletions(-) > > diff --git a/src/lib/eina/eina_debug_cpu.c b/src/lib/eina/eina_debug_cpu.c > index 0f25b4bfbd..20f83b7cea 100644 > --- a/src/lib/eina/eina_debug_cpu.c > +++ b/src/lib/eina/eina_debug_cpu.c > @@ -8,6 +8,7 @@ > #include <errno.h> > #include <unistd.h> > #include <pthread.h> > +#include <signal.h> > #include <sys/types.h> > #include <sys/stat.h> > #include <fcntl.h> > @@ -294,12 +295,32 @@ Eina_Bool > _eina_debug_cpu_init(void) > { > // if it's already running - we're good. > +#ifndef _WIN32 > if (!_sysmon_thread_runs) > { > int err; > + sigset_t oldset, newset; > + > eina_lock_new(&_sysmon_lock); > eina_lock_take(&_sysmon_lock); > + sigemptyset(&newset); > + sigaddset(&newset, SIGPIPE); > + sigaddset(&newset, SIGALRM); > + sigaddset(&newset, SIGCHLD); > + sigaddset(&newset, SIGUSR1); > + sigaddset(&newset, SIGUSR2); > + sigaddset(&newset, SIGHUP); > + sigaddset(&newset, SIGQUIT); > + sigaddset(&newset, SIGINT); > + sigaddset(&newset, SIGTERM); > +#ifdef SIGPWR > + sigaddset(&newset, SIGPWR); > +#endif > + pthread_sigmask(SIG_BLOCK, &newset, &oldset); > + > err = pthread_create(&_sysmon_thread, NULL, _sysmon, NULL); > + > + pthread_sigmask(SIG_SETMASK, &oldset, NULL); > if (err != 0) > { > e_debug("EINA DEBUG ERROR: Can't create debug sysmon thread!"); > @@ -308,6 +329,7 @@ _eina_debug_cpu_init(void) > _sysmon_thread_runs = EINA_TRUE; > } > eina_debug_opcodes_register(NULL, _OPS(), NULL, NULL); > +#endif > return EINA_TRUE; > } > > diff --git a/src/lib/eina/eina_debug_timer.c b/src/lib/eina/eina_debug_timer.c > index 26b93e5fd4..610869c2dc 100644 > --- a/src/lib/eina/eina_debug_timer.c > +++ b/src/lib/eina/eina_debug_timer.c > @@ -160,7 +160,28 @@ eina_debug_timer_add(unsigned int timeout_ms, > Eina_Debug_Timer_Cb cb, void *data > _timer_append(t); > if (!_thread_runs) > { > +#ifndef _WIN32 > + sigset_t oldset, newset; > + > + sigemptyset(&newset); > + sigaddset(&newset, SIGPIPE); > + sigaddset(&newset, SIGALRM); > + sigaddset(&newset, SIGCHLD); > + sigaddset(&newset, SIGUSR1); > + sigaddset(&newset, SIGUSR2); > + sigaddset(&newset, SIGHUP); > + sigaddset(&newset, SIGQUIT); > + sigaddset(&newset, SIGINT); > + sigaddset(&newset, SIGTERM); > +# ifdef SIGPWR > + sigaddset(&newset, SIGPWR); > +# endif > + pthread_sigmask(SIG_BLOCK, &newset, &oldset); > +#endif > int err = pthread_create(&_thread, NULL, _monitor, NULL); > +#ifndef _WIN32 > + pthread_sigmask(SIG_SETMASK, &oldset, NULL); > +#endif > if (err != 0) > { > e_debug("EINA DEBUG ERROR: Can't create debug timer thread!"); > diff --git a/src/modules/emotion/xine/emotion_xine.c > b/src/modules/emotion/xine/emotion_xine.c > index dc89ee0eb1..4beaa64e9a 100644 > --- a/src/modules/emotion/xine/emotion_xine.c > +++ b/src/modules/emotion/xine/emotion_xine.c > @@ -382,10 +382,10 @@ em_add(const Emotion_Engine *api EINA_UNUSED, > #ifdef SIGPWR > sigaddset(&newset, SIGPWR); > #endif > - sigprocmask(SIG_BLOCK, &newset, &oldset); > + pthread_sigmask(SIG_BLOCK, &newset, &oldset); > pthread_create(&ev->get_pos_len_th, NULL, _em_get_pos_len_th, ev); > pthread_create(&ev->slave_th, NULL, _em_slave, ev); > - sigprocmask(SIG_SETMASK, &oldset, NULL); > + pthread_sigmask(SIG_SETMASK, &oldset, NULL); > > pthread_detach(ev->slave_th); > _em_slave_event(ev, 1, NULL); > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel