mirror of
https://github.com/grpc/grpc-node.git
synced 2025-12-08 18:23:54 +00:00
Node: Completion queue API changes
This commit is contained in:
parent
33f86c584b
commit
d11683df61
@ -34,14 +34,14 @@
|
||||
/* I don't like using #ifndef, but I don't see a better way to do this */
|
||||
#ifndef GRPC_UV
|
||||
|
||||
#include <node.h>
|
||||
#include <nan.h>
|
||||
#include <node.h>
|
||||
|
||||
#include "call.h"
|
||||
#include "completion_queue.h"
|
||||
#include "grpc/grpc.h"
|
||||
#include "grpc/support/log.h"
|
||||
#include "grpc/support/time.h"
|
||||
#include "completion_queue.h"
|
||||
#include "call.h"
|
||||
|
||||
namespace grpc {
|
||||
namespace node {
|
||||
@ -111,8 +111,8 @@ CompletionQueueAsyncWorker::CompletionQueueAsyncWorker()
|
||||
CompletionQueueAsyncWorker::~CompletionQueueAsyncWorker() {}
|
||||
|
||||
void CompletionQueueAsyncWorker::Execute() {
|
||||
result =
|
||||
grpc_completion_queue_next(queue, gpr_inf_future(GPR_CLOCK_REALTIME), NULL);
|
||||
result = grpc_completion_queue_next(queue, gpr_inf_future(GPR_CLOCK_REALTIME),
|
||||
NULL);
|
||||
if (!result.success) {
|
||||
SetErrorMessage("The async function encountered an error");
|
||||
}
|
||||
@ -141,7 +141,8 @@ void CompletionQueueAsyncWorker::Init(Local<Object> exports) {
|
||||
Nan::HandleScope scope;
|
||||
current_threads = 0;
|
||||
waiting_next_calls = 0;
|
||||
queue = grpc_completion_queue_create(NULL);
|
||||
queue =
|
||||
grpc_completion_queue_create(GRPC_CQ_NEXT, GRPC_CQ_DEFAULT_POLLING, NULL);
|
||||
}
|
||||
|
||||
void CompletionQueueAsyncWorker::HandleOKCallback() {
|
||||
@ -173,9 +174,7 @@ grpc_completion_queue *GetCompletionQueue() {
|
||||
return CompletionQueueAsyncWorker::GetQueue();
|
||||
}
|
||||
|
||||
void CompletionQueueNext() {
|
||||
CompletionQueueAsyncWorker::Next();
|
||||
}
|
||||
void CompletionQueueNext() { CompletionQueueAsyncWorker::Next(); }
|
||||
|
||||
void CompletionQueueInit(Local<Object> exports) {
|
||||
CompletionQueueAsyncWorker::Init(exports);
|
||||
@ -184,4 +183,4 @@ void CompletionQueueInit(Local<Object> exports) {
|
||||
} // namespace node
|
||||
} // namespace grpc
|
||||
|
||||
#endif /* GRPC_UV */
|
||||
#endif /* GRPC_UV */
|
||||
|
||||
@ -33,10 +33,10 @@
|
||||
|
||||
#ifdef GRPC_UV
|
||||
|
||||
#include <uv.h>
|
||||
#include <node.h>
|
||||
#include <v8.h>
|
||||
#include <grpc/grpc.h>
|
||||
#include <node.h>
|
||||
#include <uv.h>
|
||||
#include <v8.h>
|
||||
|
||||
#include "call.h"
|
||||
#include "completion_queue.h"
|
||||
@ -57,18 +57,18 @@ void drain_completion_queue(uv_prepare_t *handle) {
|
||||
grpc_event event;
|
||||
(void)handle;
|
||||
do {
|
||||
event = grpc_completion_queue_next(
|
||||
queue, gpr_inf_past(GPR_CLOCK_MONOTONIC), NULL);
|
||||
event = grpc_completion_queue_next(queue, gpr_inf_past(GPR_CLOCK_MONOTONIC),
|
||||
NULL);
|
||||
|
||||
if (event.type == GRPC_OP_COMPLETE) {
|
||||
Nan::Callback *callback = grpc::node::GetTagCallback(event.tag);
|
||||
if (event.success) {
|
||||
Local<Value> argv[] = {Nan::Null(),
|
||||
grpc::node::GetTagNodeValue(event.tag)};
|
||||
grpc::node::GetTagNodeValue(event.tag)};
|
||||
callback->Call(2, argv);
|
||||
} else {
|
||||
Local<Value> argv[] = {Nan::Error(
|
||||
"The async function encountered an error")};
|
||||
Local<Value> argv[] = {
|
||||
Nan::Error("The async function encountered an error")};
|
||||
callback->Call(1, argv);
|
||||
}
|
||||
grpc::node::CompleteTag(event.tag);
|
||||
@ -81,9 +81,7 @@ void drain_completion_queue(uv_prepare_t *handle) {
|
||||
} while (event.type != GRPC_QUEUE_TIMEOUT);
|
||||
}
|
||||
|
||||
grpc_completion_queue *GetCompletionQueue() {
|
||||
return queue;
|
||||
}
|
||||
grpc_completion_queue *GetCompletionQueue() { return queue; }
|
||||
|
||||
void CompletionQueueNext() {
|
||||
if (pending_batches == 0) {
|
||||
@ -94,7 +92,8 @@ void CompletionQueueNext() {
|
||||
}
|
||||
|
||||
void CompletionQueueInit(Local<Object> exports) {
|
||||
queue = grpc_completion_queue_create(NULL);
|
||||
queue =
|
||||
grpc_completion_queue_create(GRPC_CQ_NEXT, GRPC_CQ_DEFAULT_POLLING, NULL);
|
||||
uv_prepare_init(uv_default_loop(), &prepare);
|
||||
pending_batches = 0;
|
||||
}
|
||||
|
||||
@ -35,8 +35,8 @@
|
||||
|
||||
#include "server.h"
|
||||
|
||||
#include <node.h>
|
||||
#include <nan.h>
|
||||
#include <node.h>
|
||||
#include "grpc/grpc.h"
|
||||
#include "grpc/support/time.h"
|
||||
|
||||
@ -44,7 +44,8 @@ namespace grpc {
|
||||
namespace node {
|
||||
|
||||
Server::Server(grpc_server *server) : wrapped_server(server) {
|
||||
shutdown_queue = grpc_completion_queue_create(NULL);
|
||||
shutdown_queue = grpc_completion_queue_create(GRPC_CQ_PLUCK,
|
||||
GRPC_CQ_DEFAULT_POLLING, NULL);
|
||||
grpc_server_register_non_listening_completion_queue(server, shutdown_queue,
|
||||
NULL);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user