SignalFD takes control over handling signals sent to the thread. More...
#include <signalfd.hpp>
Public Types | |
typedef std::function< void(struct::signalfd_siginfo &)> | Callback |
Public Member Functions | |
SignalFD (cargo::ipc::epoll::EventPoll &eventPoll) | |
virtual | ~SignalFD () |
SignalFD (const SignalFD &signalfd)=delete | |
SignalFD & | operator= (const SignalFD &)=delete |
void | setHandler (const int sigNum, const Callback &&callback) |
Add a callback for a specified signal. More... | |
int | getFD () const |
Private Types | |
typedef std::unique_lock < std::mutex > | Lock |
Private Member Functions | |
void | handleInternal () |
Private Attributes | |
int | mFD |
::sigset_t | mSet |
std::mutex | mMutex |
cargo::ipc::epoll::EventPoll & | mEventPoll |
std::unordered_map< int, Callback > | mCallbacks |
std::vector< int > | mBlockedSignals |
SignalFD takes control over handling signals sent to the thread.
It should be the only place where signal masks are modified.
typedef std::function<void(struct ::signalfd_siginfo&)> utils::SignalFD::Callback |
|
private |
utils::SignalFD::SignalFD | ( | cargo::ipc::epoll::EventPoll & | eventPoll | ) |
|
virtual |
|
delete |
int utils::SignalFD::getFD | ( | ) | const |
|
private |
void utils::SignalFD::setHandler | ( | const int | sigNum, |
const Callback && | callback | ||
) |
Add a callback for a specified signal.
Blocks the async signal handler if it's not already blocked.
sigNum | number of the signal |
callback | handler callback |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |