diff --git a/src/ruby/ext/grpc/rb_event_thread.c b/src/ruby/ext/grpc/rb_event_thread.c index 014dd2dcd8882..b281e32beb91f 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; + static 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,10 @@ static grpc_rb_event* grpc_rb_event_queue_dequeue() { event_queue.head = event_queue.head->next; } } + if (event->pid != getpid()) { + fprintf(stderr, "DEQUEUED EVENT PID %d != CURRENT PID %d\n", event->pid, + getpid()); + } return event; }