William Ahern schreef:

> 
> Signal handlers and masks are inherited across fork() and pthread_create().
> And masks are inherited across exec(), too, I think.
> 

Yes, of course, I should've thought of that myself.

> You could add code to each thread to do this. Of course, there are race
> conditions. Imagine if a signal is raised after a thread starts but before
> it can block the signal. This is especially troublesome if you dynamically
> create threads.
> 
> With SIGPIPE the answer is simple, though. Block the signal from the main
> thread before creating any other threads. All threads will inherit the
> block, and SIGPIPE can never squeeze through.
> 
> But, by block I mean actually using sigaction(2) (see the code I posted
> earlier), not by installing a libevent handler. Installing a SIGPIPE handler
> through libevent is pointless and a waste of CPU, and of course it doesn't
> do what you want anyway.
> 

Why is it pointless? I indeed noticed it doesn't catch signals (I think
my other signals do not get through as well), but libevent comes with
an example program.

> Signals are probably the most complex and difficult to understand concept in
> Unix, and understanding how to safely use them is even more difficult. I
> suggest you find a copy of Richard Stevens' Advanced Programming in the UNIX
> Environment.
> 
> If Knuth and Stevens have (had) one thing in common, it's that no engineer
> would ever question why you one of their books sat on your book shelf.

I know, and I used to own them both, but the former was hijacked by my
oldest son, and the latter just magically disappeared from my bookshelf...

Thanks,
Ron

> _______________________________________________
> Libevent-users mailing list
> Libevent-users@monkey.org
> http://monkeymail.org/mailman/listinfo/libevent-users


-- 
NeoNova BV, The Netherlands
Professional internet and VoIP solutions

http://www.neonova.nl   Kruislaan 419              1098 VA Amsterdam
info: 020-5628292       servicedesk: 020-5628292   fax: 020-5628291
KvK Amsterdam 34151241

The following disclaimer applies to this email:
http://www.neonova.nl/maildisclaimer

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkeymail.org/mailman/listinfo/libevent-users

Reply via email to