From 0fc6f980b97df724c9d7e76f8008cdc325ac174d Mon Sep 17 00:00:00 2001 From: Patrick Hernandez Date: Tue, 28 Feb 2012 16:39:25 -0600 Subject: [PATCH 1/2] A fix for batch enqueue completion block returning on background thread --- AFNetworking/AFHTTPClient.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/AFNetworking/AFHTTPClient.m b/AFNetworking/AFHTTPClient.m index bbf75d6..1678d98 100644 --- a/AFNetworking/AFHTTPClient.m +++ b/AFNetworking/AFHTTPClient.m @@ -442,7 +442,9 @@ static void AFReachabilityCallback(SCNetworkReachabilityRef __unused target, SCN { NSBlockOperation *batchedOperation = [NSBlockOperation blockOperationWithBlock:^{ if (completionBlock) { - completionBlock(operations); + dispatch_async(dispatch_get_main_queue(), ^{ + completionBlock(operations); + }); } }]; From cc2115e4699b694d072c5483093fed778342720b Mon Sep 17 00:00:00 2001 From: Patrick Hernandez Date: Tue, 28 Feb 2012 17:12:10 -0600 Subject: [PATCH 2/2] Made progressBlock call back to the main queue by default. --- AFNetworking/AFHTTPClient.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/AFNetworking/AFHTTPClient.m b/AFNetworking/AFHTTPClient.m index 1678d98..3f826c0 100644 --- a/AFNetworking/AFHTTPClient.m +++ b/AFNetworking/AFHTTPClient.m @@ -456,7 +456,9 @@ static void AFReachabilityCallback(SCNetworkReachabilityRef __unused target, SCN AFCompletionBlock originalCompletionBlock = [[operation.completionBlock copy] autorelease]; operation.completionBlock = ^{ if (progressBlock) { - progressBlock([[batchedOperation.dependencies filteredArrayUsingPredicate:finishedOperationPredicate] count], [batchedOperation.dependencies count]); + dispatch_async(dispatch_get_main_queue(), ^{ + progressBlock([[batchedOperation.dependencies filteredArrayUsingPredicate:finishedOperationPredicate] count], [batchedOperation.dependencies count]); + }); } if (originalCompletionBlock) {