Signal handling master thread in a multi-threaded application
More...
#include <cc/SignalMaster>
|
| | SignalMaster ()=default |
| | Create a null signal master.
|
| |
| | SignalMaster (const Channel< Signal > &signals, const SignalSet &shutdownSet=defaultShutdownSignals()) |
| | Create a new signal master thread.
|
| |
| void | start () |
| | Start the signal master thread.
|
| |
| void | wait () |
| | Wait for termination of the signal master thread.
|
| |
| void | kill (Signal signal=Signal::Terminate) |
| | Send signal to the signal master thread.
|
| |
| | Object ()=default |
| | Create a null object.
|
| |
| | operator bool () const |
| | Check if this is a non-null object.
|
| |
| bool | isNull () const |
| | Check if this is a null object.
|
| |
| template<class T > |
| bool | is () const |
| | Check if this object is of type T.
|
| |
| template<class T > |
| T | as () const |
| | Cast this object to type T.
|
| |
| bool | isWeak () const |
| | Check if the underlying object reference is weak.
|
| |
| bool | operator== (const Object &other) const |
| | Equality operator.
|
| |
| std::strong_ordering | operator<=> (const Object &other) const |
| | Ordering operator.
|
| |
| long | useCount () const |
| | Reference count.
|
| |
|
|
template<class T > |
| T | weak () const |
| |
| template<class T > |
| void | initOnce () |
| | Create the object state when called the first time.
|
| |
| template<class T > |
| void | initOncePerThread () |
| | Create a distinct object state for each thread when called the first time in that thread.
|
| |
| | Object (State *newState) |
| | Initialize object with newState.
|
| |
|
| Object (State *state, Alias) |
| |
|
| Object (State *state, Weak) |
| |
|
Object & | operator= (std::nullptr_t) |
| |
| template<class T > |
| static T | alias (const State *state) |
| | Create an alias object for the given state.
|
| |
|
template<class T > |
| static T | weak (const State *state) |
| |
| Handle< State > | me |
| | Internal object state
|
| |
Signal handling master thread in a multi-threaded application
- Note
- Before starting the SignalMaster one has to block all signals in all threads.
- See also
- Thread::blockSignals()
◆ SignalMaster() [1/2]
Create a null signal master.
◆ SignalMaster() [2/2]
Create a new signal master thread.
- Parameters
-
| signals | Channel which transmits the received system signals |
| shutdownSet | Signals that cause the shutdown of the signal master |
◆ start()
Start the signal master thread.
◆ wait()
Wait for termination of the signal master thread.
◆ kill()
Send signal to the signal master thread.