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 + -
显示快捷键?