Assign finished and canceled
diff --git a/src/objective-c/GRPCClient/GRPCCall.m b/src/objective-c/GRPCClient/GRPCCall.m
index 39681d2..9d81dcf 100644
--- a/src/objective-c/GRPCClient/GRPCCall.m
+++ b/src/objective-c/GRPCClient/GRPCCall.m
@@ -143,7 +143,7 @@
dispatch_set_target_queue(responseHandler.dispatchQueue, _dispatchQueue);
_started = NO;
_canceled = NO;
- _finished = YES;
+ _finished = NO;
}
return self;
@@ -218,6 +218,7 @@
- (void)cancel {
dispatch_async(_dispatchQueue, ^{
GRPCAssert(!self->_canceled, NSInternalInconsistencyException, @"Call already canceled.");
+ self->_canceled = YES;
if (self->_call) {
[self->_call cancel];
self->_call = nil;
@@ -263,6 +264,7 @@
[self->_pipe writesFinishedWithError:nil];
}
self->_pipe = nil;
+ self->_finished = YES;
});
}