aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objective-c/GRPCClient
diff options
context:
space:
mode:
authorGravatar Muxi Yan <mxyan@google.com>2018-10-18 09:53:41 -0700
committerGravatar Muxi Yan <mxyan@google.com>2018-10-18 09:53:41 -0700
commit67a4eb6623d0870992051d0280b78dd7a2b2c0ff (patch)
tree7e91a2b49747164137d23ecd26c2e63383acbcc5 /src/objective-c/GRPCClient
parent62693ec1bd0fe0133a3d382ef2e11ffa935e9904 (diff)
Lock GRPCCall in GRPCAuthorizatioProtocol
Diffstat (limited to 'src/objective-c/GRPCClient')
-rw-r--r--src/objective-c/GRPCClient/GRPCCall.m26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/objective-c/GRPCClient/GRPCCall.m b/src/objective-c/GRPCClient/GRPCCall.m
index 5ffdfbaa89..68f0f8892d 100644
--- a/src/objective-c/GRPCClient/GRPCCall.m
+++ b/src/objective-c/GRPCClient/GRPCCall.m
@@ -461,10 +461,12 @@ const char *kCFStreamVarName = "grpc_cfstream";
}
- (void)cancel {
- if (!self.isWaitingForToken) {
- [self cancelCall];
- } else {
- self.isWaitingForToken = NO;
+ @synchronized (self) {
+ if (!self.isWaitingForToken) {
+ [self cancelCall];
+ } else {
+ self.isWaitingForToken = NO;
+ }
}
[self
maybeFinishWithError:[NSError
@@ -779,14 +781,18 @@ const char *kCFStreamVarName = "grpc_cfstream";
_callOptions = callOptions;
}
if (_callOptions.authTokenProvider != nil) {
- self.isWaitingForToken = YES;
+ @synchronized (self) {
+ self.isWaitingForToken = YES;
+ }
[self.tokenProvider getTokenWithHandler:^(NSString *token) {
- if (self.isWaitingForToken) {
- if (token) {
- self->_fetchedOauth2AccessToken = [token copy];
+ @synchronized (self) {
+ if (self.isWaitingForToken) {
+ if (token) {
+ self->_fetchedOauth2AccessToken = [token copy];
+ }
+ [self startCallWithWriteable:writeable];
+ self.isWaitingForToken = NO;
}
- [self startCallWithWriteable:writeable];
- self.isWaitingForToken = NO;
}
}];
} else {