Re: Canceling and then retrying a bunch of tasks
Re: Canceling and then retrying a bunch of tasks
- Subject: Re: Canceling and then retrying a bunch of tasks
- From: Rick Mann <email@hidden>
- Date: Mon, 07 Dec 2015 19:52:35 -0800
> On Dec 7, 2015, at 17:58 , Rick Mann <email@hidden> wrote:
>
>
>> On Dec 7, 2015, at 17:50 , Jens Alfke <email@hidden> wrote:
>>
>>
>>> On Dec 7, 2015, at 5:06 PM, Rick Mann <email@hidden> wrote:
>>>
>>> I don't see a good way to do this, though. I don't see any way to be sure that all the canceled tasks canceled or completed, because I don't necessarily get a call back to tell me each one is canceled. Any of them could complete just before or just after I cancel (or at the same time).
>>
>> If you do the work on the operation queue that the delegates are called on, there shouldn’t be race conditions like this — you’re essentially doing it single-threaded just like in the old days of NSURLConnection and runloops. Just cancel all the tasks for which you haven’t yet gotten a completion/failure callback.
>
> Okay, so let's say this happens:
>
> While I'm in the completion block for download A, download B completes (because more than one was issued simultaneously by iOS, as I assume the case can be). In completion block A, I cancel all the downloads and return. Does B call its completion block, or does it short-circuit that?
>
> Also, I presume this only works if the queue is a serial queue, but the docs say it doesn't have to be such.
And, the answer is no. My completion block gets called MANY more times after I invalidate and cancel the session.
I see no way to handle this without keeping separate state for each set of attempts I make.
I've written a feature request, 23796650
--
Rick Mann
email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Macnetworkprog mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden