Changes from 5.2.1 to 5.3 (theads / signal handling)
Jose Marcio Martins da Cruz
Jose-Marcio.Martins at ensmp.fr
Wed Jan 25 02:14:50 PST 2006
I have a problem with an application I wrote.
It works fine under Solaris, Linux, and FreeBSD till release 5.2.1.
Under FreeBSD 5.3 and newers I have problems.
The application is constituted by two processes : a supervisor and modules. The
supervisor forks and become a module when it shall launch one.
The supervisor is a single loop and it has a thread to handle signals. Each
module is a multithreaded server, with its own thread to handle signals.
Under FreeBSD 5.3 and newers, when the supervisor forks to become a module, it
receives a SIGABRT and exits immediately when it launches the signal handler thread.
I solved this by replacing the signal handling of the father : using a handler
defined with sigaction instead of using a thread. But I'd like to understanding
what's wrong with this and what changed from FreeBSD 5.2.1 to 5.3
More information about the freebsd-hackers