I agree with Gary, but if something about your structure makes that difficult, there’s also a queue suspend/resume approach:
let queue = dispatch_queue_create("", DISPATCH_QUEUE_SERIAL) dispatch_async(queue) { dispatch_suspend(queue) myFirstNetworkCall({ (let result) in dispatch_resume(queue) }) } dispatch_async(queue) { dispatch_suspend(queue) mySecondNetworkCall({ (let result) in dispatch_resume(queue) }) } Dan On Jun 28, 2016, at 1:11 PM, Gary L. Wade <garyw...@desisoftsystems.com<mailto:garyw...@desisoftsystems.com>> wrote: The simplest way to do what you're asking is to not send another request until your completion handler finishes. -- Gary L. Wade (Sent from my iPhone) http://www.garywade.com/ On Jun 28, 2016, at 12:52 PM, Jim Adams <jim.ad...@sas.com> wrote: I have an application that has the requirement that the accesses to the server be single threaded, i.e. the second request cannot go through until the first request has completed. I am using NSURLSession and NSURLSessionDataTask. I have set the Maximum Concurrent Host number in the configuration to 1 but I have seen evidence that there are simultaneous requests going up to my servers. Actually I don’t think they are truly simultaneous, just that the completion handler doesn’t finish before the next request goes out. Is there a way to make the next request wait until the completion block is exited? My evidence comes from looking in the server logs. I have 3 servers in AWS behind an ELB. If I am able to get the cookies back from the server before sending the next request then my request will go to the same server that the last request went to. If I don’t wait then then the request goes to a random server. If I watch the logs I can see the requests come in on multiple servers. _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/dstenmark%40opentable.com This email sent to dstenm...@opentable.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com