Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:13:13

0001 #ifndef FWCore_Utilities_UnixSignalHandlers_h
0002 #define FWCore_Utilities_UnixSignalHandlers_h
0003 
0004 /*----------------------------------------------------------------------
0005 
0006 UnixSignalHandlers: A set of little utility functions to establish
0007 and manipulate Unix-style signal handling.
0008 
0009 ----------------------------------------------------------------------*/
0010 
0011 #include <csignal>
0012 #include <atomic>
0013 
0014 namespace edm {
0015 
0016   extern volatile std::atomic<bool> shutdown_flag;
0017 
0018   extern "C" {
0019   void ep_sigusr2(int, siginfo_t*, void*);
0020   typedef void (*CFUNC)(int, siginfo_t*, void*);
0021   }
0022 
0023   void disableAllSigs(sigset_t* oldset);
0024   void disableRTSigs();
0025   void enableSignal(sigset_t* newset, int signum);
0026   void disableSignal(sigset_t* newset, int signum);
0027   void reenableSigs(sigset_t* oldset);
0028   void installSig(int signum, CFUNC func);
0029   void installCustomHandler(int signum, CFUNC func);
0030   void sigInventory();
0031 
0032 }  // end of namespace edm
0033 #endif