sighandler.h
来自「开源CORBA中间件」· C头文件 代码 · 共 41 行
H
41 行
#ifndef __SIGHANDLER_H__#define __SIGHANDLER_H__namespace MICOMT { class SigHandler : public MICOMT::Thread { private: sigset_t old_mask, new_mask; public: typedef enum { Terminate, Continue } Action; SigHandler () { sigemptyset (&new_mask); } inline void AddSignal (MICO_Long sig) { sigaddset (&new_mask, sig); } inline void DelSignal (MICO_Long sig) { sigdelset (&new_mask, sig); } virtual void _run (void *arg) { int sig; do { pthread_sigmask (SIG_BLOCK, &new_mask, &old_mask); sigwait (&new_mask, &sig); pthread_sigmask (SIG_UNBLOCK, &old_mask, &new_mask); } while (sighandler (sig, arg) == Continue); } virtual SigHandler::Action sighandler (int sig, void *arg) = 0; };}; // MICOMT#endif // __SIGHANDLER_H__
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?