Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-05-23 23:48:35

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 "FWCore/Utilities/interface/thread_safety_macros.h"
0012 #include <csignal>
0013 #include <atomic>
0014 
0015 namespace edm {
0016 
0017   CMS_THREAD_SAFE extern volatile std::atomic<bool> shutdown_flag;
0018 
0019   extern "C" {
0020   void ep_sigusr2(int, siginfo_t*, void*);
0021   typedef void (*CFUNC)(int, siginfo_t*, void*);
0022   }
0023 
0024   void disableAllSigs(sigset_t* oldset);
0025   void disableRTSigs();
0026   void enableSignal(sigset_t* newset, int signum);
0027   void disableSignal(sigset_t* newset, int signum);
0028   void reenableSigs(sigset_t* oldset);
0029   void installSig(int signum, CFUNC func);
0030   void installCustomHandler(int signum, CFUNC func);
0031   void sigInventory();
0032 
0033 }  // end of namespace edm
0034 #endif