1
#include "source/common/event/signal_impl.h"
2

            
3
#include "source/common/event/dispatcher_impl.h"
4

            
5
#include "event2/event.h"
6

            
7
namespace Envoy {
8
namespace Event {
9

            
10
SignalEventImpl::SignalEventImpl(DispatcherImpl& dispatcher, signal_t signal_num, SignalCb cb)
11
42356
    : cb_(cb) {
12
42356
  evsignal_assign(
13
42356
      &raw_event_, &dispatcher.base(), signal_num,
14
42356
      [](evutil_socket_t, short, void* arg) -> void { static_cast<SignalEventImpl*>(arg)->cb_(); },
15
42356
      this);
16
42356
  evsignal_add(&raw_event_, nullptr);
17
42356
}
18

            
19
} // namespace Event
20
} // namespace Envoy