On 6 April 2015 at 07:47, Neil T. Dantam via ros-users < ros-users@lists.ros.org> wrote: > > Hello, > > I am trying to call roscpp within another program that uses SIGPIPE. > ROS is blocking this (in ros::init() within > clients/roscpp/src/libros/init.cpp it seems) and this breaks things. > > Why is SIGPIPE ignored here? Presumably, this would be to prevent > the default handler from terminating the process when a socket is > disconnected. > > My current workaround is to unmask SIGPIPE after the ROS libraries are > loaded. This seems to be working fine in that I can communicate via > ROS and the rest of the program can use SIGPIPE as it needs to. Are > there any potential subtle errors that could arise from this? > > Ideally, it seems that there should be an option to prevent roscpp > from initially blocking SIGPIPE rather than it unconditionally > modifying the process-global state. > > ROS Answers is a better place for these questions. See if you can make it easier for responders too - direct link to the code url where ros init is blocking for instance. Daniel.