33 struct sigaction Foam::sigQuitImpl::oldAction_;
37 void Foam::sigQuitImpl::sigQuitHandler(int)
40 if (sigaction(SIGQUIT, &oldAction_, NULL) < 0)
44 "Foam::sigQuitImpl::sigQuitHandler()"
45 ) <<
"Cannot reset SIGQUIT trapping"
52 error::printStack(
Perr);
63 oldAction_.sa_handler = NULL;
72 if (oldAction_.sa_handler && sigaction(SIGQUIT, &oldAction_, NULL) < 0)
76 "Foam::sigQuitImpl::~sigQuitImpl()"
77 ) <<
"Cannot reset SIGQUIT trapping"
87 if (oldAction_.sa_handler)
91 "Foam::sigQuitImpl::set()"
92 ) <<
"Cannot call sigQuitImpl::set() more than once"
96 struct sigaction newAction;
97 newAction.sa_handler = sigQuitHandler;
98 newAction.sa_flags = SA_NODEFER;
99 sigemptyset(&newAction.sa_mask);
100 if (sigaction(SIGQUIT, &newAction, &oldAction_) < 0)
104 "Foam::sigQuitImpl::set()"
105 ) <<
"Cannot set SIGQUIT trapping"