When Regina is used within a multi-threaded application that also uses TCP/IP sockets (from C code) SIGPIPE signals are ignored and instead handles the appropriate return codes.
But when Regina calls an external process it changes the SIGPIPE handling to SIG_IGN but then sets it to SIG_DFL. This can cause the the application process to die occcasionally when SIGPIPE occurs on one of the socket connections.
Regina should restore the signal action on SIGPIPE to what it was before calling the external process.
Thank you very much for your help,
Log in to post a comment.