[PATCH] Improve LinuxThreads compatibility in rfork()

Petr Salinger Petr.Salinger at seznam.cz
Mon Jul 11 16:03:29 UTC 2011


> I would instead use a new flag to specify a signal sent on the child
> death. Like RFTSIGZMB. If flag is not set, SIGCHLD is used. If it is
> set, the bit slice is used as signal number, 0 means do not send any
> signal.
>
> Please note that the signal should be checked for validity, it must be
> <= _SIG_MAXSIG).

We used this:

#define RFTHPNSHIFT    24      /* reserve bits 24-30 */
#define RFTHPNMASK     0x7F    /* for compatibility with linuxthreads/clone()   */
                                /* allow to specify  "clone exit parent notification" signal */
#define RFTHPNSIGNUM(flags)    (((flags) >> RFTHPNSHIFT) & RFTHPNMASK)

Therefore signal #128 (_SIG_MAXSIG) cannot be selected.

Should the bit slice be 7 or 8 bits ?

Petr




More information about the freebsd-current mailing list