29 : eventBase_(eventBase) {}
36 event_del(&it->second);
57 throw std::runtime_error(
58 folly::to<string>(
"handler already registered for signal ", signum));
61 struct event* ev = &(ret.first->second);
65 throw std::runtime_error(folly::to<string>(
66 "error initializing event handler for signal ", signum));
69 if (event_add(ev,
nullptr) != 0) {
70 throw std::runtime_error(
71 folly::to<string>(
"error adding event handler for signal ", signum));
82 throw std::runtime_error(folly::to<string>(
83 "unable to unregister handler for signal ",
85 ": signal not registered"));
88 event_del(&it->second);
static void libeventCallback(libevent_fd_t signum, short events, void *arg)
void attachEventBase(EventBase *eventBase)
—— Concurrent Priority Queue Implementation ——
void handler(int, siginfo_t *, void *)
SignalEventMap signalEvents_
event_base * getLibeventBase() const
void registerSignalHandler(int signum)
virtual void signalReceived(int signum) noexcept=0
virtual ~AsyncSignalHandler()
void unregisterSignalHandler(int signum)
AsyncSignalHandler(EventBase *eventBase)