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


Hello,

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

Thanks

Jose-Marcio


More information about the freebsd-hackers mailing list