aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m
diff options
context:
space:
mode:
Diffstat (limited to 'src/objective-c/GRPCClient/private/GRPCCompletionQueue.m')
-rw-r--r--src/objective-c/GRPCClient/private/GRPCCompletionQueue.m27
1 files changed, 9 insertions, 18 deletions
diff --git a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m
index b98e8ea439..a0a10164b1 100644
--- a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m
+++ b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m
@@ -66,30 +66,21 @@
while (YES) {
// The following call blocks until an event is available.
grpc_event *event = grpc_completion_queue_next(unmanagedQueue, gpr_inf_future);
+ GRPCQueueCompletionHandler handler;
switch (event->type) {
- case GRPC_WRITE_ACCEPTED:
- case GRPC_FINISH_ACCEPTED:
- case GRPC_CLIENT_METADATA_READ:
- case GRPC_READ:
- case GRPC_FINISHED:
- if (event->tag) {
- GRPCEventHandler handler = (__bridge_transfer GRPCEventHandler) event->tag;
- handler(event);
- }
+ case GRPC_OP_COMPLETE:
+ handler = (__bridge_transfer GRPCQueueCompletionHandler)event->tag;
+ handler(event->data.op_complete);
grpc_event_finish(event);
- continue;
+ break;
case GRPC_QUEUE_SHUTDOWN:
- grpc_completion_queue_destroy(unmanagedQueue);
grpc_event_finish(event);
+ grpc_completion_queue_destroy(unmanagedQueue);
return;
- case GRPC_SERVER_RPC_NEW:
- NSAssert(NO, @"C gRPC library produced a server-only event.");
- continue;
+ default:
+ grpc_event_finish(event);
+ [NSException raise:@"Unrecognized completion type" format:@""];
}
- // This means the C gRPC library produced an event that wasn't known
- // when this library was written. To preserve evolvability, ignore the
- // unknown event on release builds.
- NSAssert(NO, @"C gRPC library produced an unknown event.");
};
});
}