Fix ruby server
diff --git a/src/ruby/ext/grpc/rb_server.c b/src/ruby/ext/grpc/rb_server.c
index bc0878a..a013dbc 100644
--- a/src/ruby/ext/grpc/rb_server.c
+++ b/src/ruby/ext/grpc/rb_server.c
@@ -203,7 +203,7 @@
                                          VALUE tag_new, VALUE timeout) {
   grpc_rb_server *s = NULL;
   grpc_call *call = NULL;
-  grpc_event *ev = NULL;
+  grpc_event ev;
   grpc_call_error err;
   request_call_stack st;
   VALUE result;
@@ -227,15 +227,14 @@
       return Qnil;
     }
     ev = grpc_rb_completion_queue_pluck_event(cqueue, tag_new, timeout);
-    if (ev == NULL) {
+    if (ev.type == GRPC_QUEUE_TIMEOUT) {
       grpc_request_call_stack_cleanup(&st);
       return Qnil;
     }
-    if (ev->data.op_complete != GRPC_OP_OK) {
+    if (!ev.success) {
       grpc_request_call_stack_cleanup(&st);
       grpc_event_finish(ev);
-      rb_raise(grpc_rb_eCallError, "request_call completion failed: (code=%d)",
-               ev->data.op_complete);
+      rb_raise(grpc_rb_eCallError, "request_call completion failed");
       return Qnil;
     }
 
@@ -249,7 +248,6 @@
         grpc_rb_md_ary_to_h(&st.md_ary),
         grpc_rb_wrap_call(call),
         NULL);
-    grpc_event_finish(ev);
     grpc_request_call_stack_cleanup(&st);
     return result;
   }