src: make node::SignalWrap::OnSignal into lambda

PR-URL: https://github.com/nodejs/node/pull/26184
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit is contained in:
Gireesh Punathil 2019-02-18 09:07:19 -05:00
parent 83e1b97443
commit dbfe14c809

View File

@ -101,7 +101,17 @@ class SignalWrap : public HandleWrap {
}
}
#endif
int err = uv_signal_start(&wrap->handle_, OnSignal, signum);
int err = uv_signal_start(
&wrap->handle_,
[](uv_signal_t* handle, int signum) {
SignalWrap* wrap = ContainerOf(&SignalWrap::handle_, handle);
Environment* env = wrap->env();
HandleScope handle_scope(env->isolate());
Context::Scope context_scope(env->context());
Local<Value> arg = Integer::New(env->isolate(), signum);
wrap->MakeCallback(env->onsignal_string(), 1, &arg);
},
signum);
args.GetReturnValue().Set(err);
}
@ -112,16 +122,6 @@ class SignalWrap : public HandleWrap {
args.GetReturnValue().Set(err);
}
static void OnSignal(uv_signal_t* handle, int signum) {
SignalWrap* wrap = ContainerOf(&SignalWrap::handle_, handle);
Environment* env = wrap->env();
HandleScope handle_scope(env->isolate());
Context::Scope context_scope(env->context());
Local<Value> arg = Integer::New(env->isolate(), signum);
wrap->MakeCallback(env->onsignal_string(), 1, &arg);
}
uv_signal_t handle_;
};