From ef4eeea5d02c47e78d3fdcbc126bfad4f825dad4 Mon Sep 17 00:00:00 2001 From: Alexander Polcyn <apolcyn@google.com> Date: Wed, 12 Jun 2024 21:29:56 +0000 Subject: [PATCH] remove unnecessary guard on shutdown_and_notify --- src/ruby/end2end/killed_client_thread_client.rb | 2 ++ src/ruby/ext/grpc/rb_call.c | 1 + src/ruby/ext/grpc/rb_server.c | 10 +++------- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/ruby/end2end/killed_client_thread_client.rb b/src/ruby/end2end/killed_client_thread_client.rb index f0de0635c4c..1e3b54b02a2 100755 --- a/src/ruby/end2end/killed_client_thread_client.rb +++ b/src/ruby/end2end/killed_client_thread_client.rb @@ -19,6 +19,8 @@ require_relative './end2end_common' +ENV["GRPC_VERBOSITY"] = "DEBUG" + def main parent_controller_port = '' server_port = '' diff --git a/src/ruby/ext/grpc/rb_call.c b/src/ruby/ext/grpc/rb_call.c index 26dc6ec4fca..297ea1fbdc4 100644 --- a/src/ruby/ext/grpc/rb_call.c +++ b/src/ruby/ext/grpc/rb_call.c @@ -809,6 +809,7 @@ struct call_run_batch_args { }; static void cancel_call_unblock_func(void* arg) { + gpr_log(GPR_DEBUG, "GRPC_RUBY: cancel_call_unblock_func"); grpc_call* call = (grpc_call*)arg; grpc_call_cancel(call, NULL); } diff --git a/src/ruby/ext/grpc/rb_server.c b/src/ruby/ext/grpc/rb_server.c index ef9d2f55e71..0ecf4a1eeef 100644 --- a/src/ruby/ext/grpc/rb_server.c +++ b/src/ruby/ext/grpc/rb_server.c @@ -49,16 +49,13 @@ typedef struct grpc_rb_server { /* The actual server */ grpc_server* wrapped; grpc_completion_queue* queue; - int shutdown_and_notify_done; int destroy_done; } grpc_rb_server; -static void grpc_rb_server_maybe_shutdown_and_notify(grpc_rb_server* server, - gpr_timespec deadline) { +static void grpc_rb_server_shutdown_and_notify(grpc_rb_server* server, + gpr_timespec deadline) { grpc_event ev; void* tag = &ev; - if (server->shutdown_and_notify_done) return; - server->shutdown_and_notify_done = 1; if (server->wrapped != NULL) { grpc_server_shutdown_and_notify(server->wrapped, server->queue, tag); // Following pluck calls will release the GIL and block but cannot @@ -134,7 +131,6 @@ static VALUE grpc_rb_server_alloc(VALUE cls) { grpc_rb_server* wrapper = ALLOC(grpc_rb_server); wrapper->wrapped = NULL; wrapper->destroy_done = 0; - wrapper->shutdown_and_notify_done = 0; return TypedData_Wrap_Struct(cls, &grpc_rb_server_data_type, wrapper); } @@ -309,7 +305,7 @@ static VALUE grpc_rb_server_shutdown_and_notify(VALUE self, VALUE timeout) { deadline = grpc_rb_time_timeval(timeout, /* absolute time*/ 0); } - grpc_rb_server_maybe_shutdown_and_notify(s, deadline); + grpc_rb_server_shutdown_and_notify(s, deadline); return Qnil; }