From bea04f497883f8a93cfee31375becc4d4a7c5093 Mon Sep 17 00:00:00 2001 From: Mike Ash Date: Fri, 22 Feb 2013 17:36:57 -0500 Subject: [PATCH] Fix deadlock from trying to do a dispatch_sync on the main queue when already on the main thread --- AFNetworking/AFHTTPClient.m | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/AFNetworking/AFHTTPClient.m b/AFNetworking/AFHTTPClient.m index 07e813d..58123bc 100644 --- a/AFNetworking/AFHTTPClient.m +++ b/AFNetworking/AFHTTPClient.m @@ -993,9 +993,14 @@ static const NSUInteger AFMultipartBodyStreamProviderBufferSize = 4096; _outputStream = CFBridgingRelease(writeStream); _outputStream.delegate = self; - dispatch_sync(dispatch_get_main_queue(), ^{ + if([NSThread isMainThread]) { [_outputStream scheduleInRunLoop: [NSRunLoop currentRunLoop] forMode: NSDefaultRunLoopMode]; - }); + } + else { + dispatch_sync(dispatch_get_main_queue(), ^{ + [_outputStream scheduleInRunLoop: [NSRunLoop currentRunLoop] forMode: NSDefaultRunLoopMode]; + }); + } [_outputStream open]; _keepalive = self; }