From 9f40f7b9ca20547a5e582b87f5ded116b97b9990 Mon Sep 17 00:00:00 2001 From: Randy Stauner Date: Tue, 29 Jul 2025 10:04:36 -0700 Subject: [PATCH 1/2] Track the pid on the rb event queue --- src/ruby/ext/grpc/rb_event_thread.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ruby/ext/grpc/rb_event_thread.c b/src/ruby/ext/grpc/rb_event_thread.c index 014dd2dcd8882..7be29d6b374db 100644 --- a/src/ruby/ext/grpc/rb_event_thread.c +++ b/src/ruby/ext/grpc/rb_event_thread.c @@ -36,6 +36,7 @@ typedef struct grpc_rb_event { void* argument; struct grpc_rb_event* next; + pid_t pid; } grpc_rb_event; typedef struct grpc_rb_event_queue { @@ -57,6 +58,7 @@ void grpc_rb_event_queue_enqueue(void (*callback)(void*), void* argument) { grpc_rb_event* event = gpr_malloc(sizeof(grpc_rb_event)); event->callback = callback; event->argument = argument; + event->pid = getpid(); event->next = NULL; gpr_mu_lock(&event_queue.mu); if (event_queue.tail == NULL) { @@ -81,6 +83,12 @@ static grpc_rb_event* grpc_rb_event_queue_dequeue() { event_queue.head = event_queue.head->next; } } + if (event != NULL) { + fprintf(stderr, "DEQUEUED EVENT PID %d %s CURRENT PID %d\n", event->pid, (event->pid == getpid() ? "==" : "!="), getpid()); + } + else { + fprintf(stderr, "DEQUEUED EVENT IS NULL\n"); + } return event; } From eee1c13cd9f6a3f8170ea64fdf173d71cb1986ec Mon Sep 17 00:00:00 2001 From: rwstauner <142719+rwstauner@users.noreply.github.com> Date: Wed, 30 Jul 2025 02:43:30 +0000 Subject: [PATCH 2/2] Automated change: Fix sanity tests --- src/ruby/ext/grpc/rb_event_thread.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ruby/ext/grpc/rb_event_thread.c b/src/ruby/ext/grpc/rb_event_thread.c index 7be29d6b374db..c30e9a09d1402 100644 --- a/src/ruby/ext/grpc/rb_event_thread.c +++ b/src/ruby/ext/grpc/rb_event_thread.c @@ -84,9 +84,9 @@ static grpc_rb_event* grpc_rb_event_queue_dequeue() { } } if (event != NULL) { - fprintf(stderr, "DEQUEUED EVENT PID %d %s CURRENT PID %d\n", event->pid, (event->pid == getpid() ? "==" : "!="), getpid()); - } - else { + fprintf(stderr, "DEQUEUED EVENT PID %d %s CURRENT PID %d\n", event->pid, + (event->pid == getpid() ? "==" : "!="), getpid()); + } else { fprintf(stderr, "DEQUEUED EVENT IS NULL\n"); } return event;