Try using a mutex on your array of requests, when adding and removing them, and 
only pull a request off the array when you're done with your completion handler 
or when you have nothing in progress such as when you first start.
--
Gary L. Wade (Sent from my iPhone)
http://www.garywade.com/

> On Jun 28, 2016, at 1:16 PM, Jim Adams <[email protected]> wrote:
> 
> Unfortunately, with a multi threaded system, I cannot figure out a way to do 
> that. Ideas appreciated.
> 
> My network calls could come from any thread. I could see putting the request 
> into a queue, but how to I make the completion handler run on that same queue 
> so it remains blocked?
> 
>> On Jun 28, 2016, at 4:11 PM, Gary L. Wade <[email protected]> 
>> 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 <[email protected]> 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 ([email protected])

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 [email protected]

Reply via email to