From 2b8acb7c3f82113427ff1dd81f127b798c222e05 Mon Sep 17 00:00:00 2001 From: Mattt Thompson Date: Tue, 20 Aug 2013 15:17:00 -0700 Subject: [PATCH] [Issue #1221] Refactoring lock for HTTP error --- AFNetworking/AFHTTPRequestOperation.m | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/AFNetworking/AFHTTPRequestOperation.m b/AFNetworking/AFHTTPRequestOperation.m index 324652b..84f2bad 100644 --- a/AFNetworking/AFHTTPRequestOperation.m +++ b/AFNetworking/AFHTTPRequestOperation.m @@ -108,10 +108,10 @@ static void AFSwizzleClassMethodWithClassAndSelectorUsingBlock(Class klass, SEL #pragma mark - @interface AFHTTPRequestOperation () -@property (readwrite, nonatomic, strong) NSRecursiveLock *lock; @property (readwrite, nonatomic, strong) NSURLRequest *request; @property (readwrite, nonatomic, strong) NSHTTPURLResponse *response; -@property (readwrite, strong) NSError *HTTPError; +@property (readwrite, nonatomic, strong) NSError *HTTPError; +@property (readwrite, nonatomic, strong) NSRecursiveLock *lock; @end @implementation AFHTTPRequestOperation @@ -122,24 +122,6 @@ static void AFSwizzleClassMethodWithClassAndSelectorUsingBlock(Class klass, SEL @dynamic request; @dynamic response; -- (NSError *)HTTPError -{ - [self.lock lock]; - NSError *HTTPError = _HTTPError; - [self.lock unlock]; - - return HTTPError; -} - -- (void)setHTTPError:(NSError *)HTTPError -{ - [self.lock lock]; - if (HTTPError != _HTTPError) { - _HTTPError = HTTPError; - } - [self.lock unlock]; -} - - (void)dealloc { if (_successCallbackQueue) { #if !OS_OBJECT_USE_OBJC @@ -157,6 +139,7 @@ static void AFSwizzleClassMethodWithClassAndSelectorUsingBlock(Class klass, SEL } - (NSError *)error { + [self.lock lock]; if (!self.HTTPError && self.response) { if (![self hasAcceptableStatusCode] || ![self hasAcceptableContentType]) { NSMutableDictionary *userInfo = [NSMutableDictionary dictionary]; @@ -178,6 +161,7 @@ static void AFSwizzleClassMethodWithClassAndSelectorUsingBlock(Class klass, SEL } } } + [self.lock unlock]; if (self.HTTPError) { return self.HTTPError;