Skip to content
Snippets Groups Projects
Commit a868c042 authored by Alex Polcyn's avatar Alex Polcyn
Browse files

keep old behavior to not destroy ruby server if not instantiated

parent 7f8a628f
No related branches found
No related tags found
No related merge requests found
...@@ -67,17 +67,19 @@ static void destroy_server(grpc_rb_server *server, gpr_timespec deadline) { ...@@ -67,17 +67,19 @@ static void destroy_server(grpc_rb_server *server, gpr_timespec deadline) {
grpc_event ev; grpc_event ev;
// This can be started by app or implicitly by GC. Avoid a race between these. // This can be started by app or implicitly by GC. Avoid a race between these.
if (gpr_atm_full_fetch_add(&server->shutdown_started, (gpr_atm)1) == 0) { if (gpr_atm_full_fetch_add(&server->shutdown_started, (gpr_atm)1) == 0) {
grpc_server_shutdown_and_notify(server->wrapped, server->queue, NULL); if (server->wrapped != NULL) {
ev = rb_completion_queue_pluck(server->queue, NULL, deadline, NULL); grpc_server_shutdown_and_notify(server->wrapped, server->queue, NULL);
if (ev.type == GRPC_QUEUE_TIMEOUT) { ev = rb_completion_queue_pluck(server->queue, NULL, deadline, NULL);
grpc_server_cancel_all_calls(server->wrapped); if (ev.type == GRPC_QUEUE_TIMEOUT) {
rb_completion_queue_pluck(server->queue, NULL, grpc_server_cancel_all_calls(server->wrapped);
gpr_inf_future(GPR_CLOCK_REALTIME), NULL); rb_completion_queue_pluck(server->queue, NULL,
gpr_inf_future(GPR_CLOCK_REALTIME), NULL);
}
grpc_server_destroy(server->wrapped);
grpc_rb_completion_queue_destroy(server->queue);
server->wrapped = NULL;
server->queue = NULL;
} }
grpc_server_destroy(server->wrapped);
grpc_rb_completion_queue_destroy(server->queue);
server->wrapped = NULL;
server->queue = NULL;
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment