HomeClusterLabs Projects

lib/services: use self-pipe sigchld handling when signalfd isn't available

Description

lib/services: use self-pipe sigchld handling when signalfd isn't available

This allows child processes to be spawned with services_os_action_execute()
on non-Linux platforms using the self-pipe trick. The only functional
change this adds on Linux is to cleanup the SIGCHLD blocking when fork() fails
and in the created child process.

It might be better to use libevent for this but rather than start to add new
dependencies this just adds a generic fix which should be supported across
multiple platforms.

Details

Provenance
David Shane Holden <dpejesh@yahoo.com>Authored on Jan 19 2016, 11:26 PM
Parents
rPc99deb0cd65a: Merge pull request #893 from ClusterLabs/1.1
Branches
Unknown
Tags
Unknown

Event Timeline