Annotation of nono/host/signalthread.h, revision 1.1.1.3

1.1       root        1: //
                      2: // nono
                      3: // Copyright (C) 2021 nono project
                      4: // Licensed under nono-license.txt
                      5: //
                      6: 
                      7: //
                      8: // シグナルスレッド
                      9: //
                     10: 
                     11: #pragma once
                     12: 
                     13: #include "thread.h"
                     14: 
                     15: class SignalThread : public ThreadDevice
                     16: {
                     17:        using inherited = ThreadDevice;
                     18: 
                     19:  public:
                     20:        SignalThread();
                     21:        ~SignalThread() override;
                     22: 
                     23:        bool StartThread() override;
                     24:        void ThreadRun() override;
                     25:        void Terminate() override;
                     26: 
                     27:        // このスレッドにシグナルを投げる
                     28:        void Kill(int signo);
                     29: 
1.1.1.2   root       30:  private:
1.1       root       31:        // シグナルをブロック/アンブロックする
                     32:        void Mask(int how, int signo);
                     33: 
                     34:        // ブロックするシグナル集合
                     35:        sigset_t waitset {};
                     36: 
                     37:        // コマンド(フラグ)
                     38:        // 終了フラグは立てるだけ、読むだけなので atomic じゃなくてもいいはず。
1.1.1.3 ! root       39:        volatile bool request_terminate {};
1.1       root       40: };
                     41: 
1.1.1.2   root       42: static inline SignalThread *GetSignalThread() {
                     43:        return Object::GetObject<SignalThread>(OBJ_SIGNAL_THREAD);
                     44: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.