diff options
author | Craig Tiller <ctiller@google.com> | 2017-04-14 13:12:30 -0700 |
---|---|---|
committer | Craig Tiller <ctiller@google.com> | 2017-04-14 13:12:30 -0700 |
commit | f294934ec4d3766824349358ba235c11a1cbb47a (patch) | |
tree | 46a1697686d6183a82b465c5b5ad9a49de170923 /src/node/ext/server_uv.cc | |
parent | bfa041a56d211b4b40360a5e00fda1c638a52fd3 (diff) | |
parent | e412a180602753972ac496560322e224a5db987f (diff) |
Merge github.com:grpc/grpc into framing_costs
Diffstat (limited to 'src/node/ext/server_uv.cc')
-rw-r--r-- | src/node/ext/server_uv.cc | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/node/ext/server_uv.cc b/src/node/ext/server_uv.cc index 82e7589fc8..789938318e 100644 --- a/src/node/ext/server_uv.cc +++ b/src/node/ext/server_uv.cc @@ -67,7 +67,7 @@ class ServerShutdownOp : public Op { } Local<Value> GetNodeValue() const { - return Nan::New<External>(reinterpret_cast<void *>(server)); + return Nan::Null(); } bool ParseOp(Local<Value> value, grpc_op *out) { @@ -76,6 +76,11 @@ class ServerShutdownOp : public Op { bool IsFinalOp() { return false; } + void OnComplete(bool success) { + /* Because cancel_all_calls was called, we assume that shutdown_and_notify + completes successfully */ + grpc_server_destroy(server); + } grpc_server *server; @@ -94,16 +99,10 @@ NAN_METHOD(ServerShutdownCallback) { if (!info[0]->IsNull()) { return Nan::ThrowError("forceShutdown failed somehow"); } - MaybeLocal<Object> maybe_result = Nan::To<Object>(info[1]); - Local<Object> result = maybe_result.ToLocalChecked(); - Local<Value> server_val = Nan::Get( - result, Nan::New("shutdown").ToLocalChecked()).ToLocalChecked(); - Local<External> server_extern = server_val.As<External>(); - grpc_server *server = reinterpret_cast<grpc_server *>(server_extern->Value()); - grpc_server_destroy(server); } void Server::ShutdownServer() { + Nan::HandleScope scope; if (this->wrapped_server != NULL) { if (shutdown_callback == NULL) { Local<FunctionTemplate>callback_tpl = |