On 7 July 2010 15:03, Martin Lucina <m...@kotelna.sk> wrote:

> I don't have the code handy right now, look for the call to
> pthread_sigmask(). The signal mask is cleared for all 0MQ I/O threads,
> so they will not get any signals (excepting SIGSEGV, etc.)
>
>
 #if !defined ZMQ_HAVE_OPENVMS
    //  Following code will guarantee more predictable latecnies as it'll
    //  disallow any signal handling in the I/O thread.
    sigset_t signal_set;
    int rc = sigfillset (&signal_set);
    errno_assert (rc == 0);
    rc = pthread_sigmask (SIG_BLOCK, &signal_set, NULL);
    errno_assert (rc == 0);
#endif

So the I/O threads which are created by ZeroMQ explicitly ignore all signals
but SIGKILL and SIGSTOP.  In this case ignore means that the default action
is not taken.

http://www.kernel.org/doc/man-pages/online/pages/man3/pthread_sigmask.3.html
http://www.kernel.org/doc/man-pages/online/pages/man2/sigprocmask.2.html

With the default actions listed in signal(7), i.e. term on most defined
signals, or stops the actions defined by the calling thread being inherited.

http://www.kernel.org/doc/man-pages/online/pages/man2/sigprocmask.2.html

-- 
Steve-o
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to