18 template <
typename... Args>
19 Signal(Args&&... args) : behaviour(std::forward<Args>(args)...)
23 if ((rc = uv_signal_init(uv_default_loop(), &
uv_handle)) < 0)
25 LOG_FAIL_FMT(
"uv_signal_init failed: {}", uv_strerror(rc));
26 throw std::logic_error(
"uv_signal_init failed");
31 if ((rc = uv_signal_start(&
uv_handle, on_signal, signum)) < 0)
33 LOG_FAIL_FMT(
"uv_signal_start failed: {}", uv_strerror(rc));
34 throw std::logic_error(
"uv_signal_start failed");
38 static void on_signal(uv_signal_t* handle,
int signal)
40 static_cast<Signal*
>(handle->data)->on_signal(signal);
43 void on_signal(
int signal)
45 behaviour.on_signal(signal);