Commit d043775 1 parent 6432839 commit d043775 Copy full SHA for d043775
File tree 1 file changed +13
-2
lines changed
1 file changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -236,10 +236,14 @@ - (void)dequeueTasks
236
236
{
237
237
dispatch_async (_URLRequestQueue, ^{
238
238
// Remove completed tasks
239
+ NSMutableArray *tasksToRemove = nil ;
239
240
for (RCTNetworkTask *task in self->_pendingTasks .reverseObjectEnumerator ) {
240
241
switch (task.status ) {
241
242
case RCTNetworkTaskFinished:
242
- [self ->_pendingTasks removeObject: task];
243
+ if (!tasksToRemove) {
244
+ tasksToRemove = [NSMutableArray new ];
245
+ }
246
+ [tasksToRemove addObject: task];
243
247
self->_activeTasks --;
244
248
break ;
245
249
case RCTNetworkTaskPending:
@@ -248,13 +252,20 @@ - (void)dequeueTasks
248
252
// Check task isn't "stuck"
249
253
if (task.requestToken == nil ) {
250
254
RCTLogWarn (@" Task orphaned for request %@ " , task.request );
251
- [self ->_pendingTasks removeObject: task];
255
+ if (!tasksToRemove) {
256
+ tasksToRemove = [NSMutableArray new ];
257
+ }
258
+ [tasksToRemove addObject: task];
252
259
self->_activeTasks --;
253
260
[task cancel ];
254
261
}
255
262
break ;
256
263
}
257
264
}
265
+
266
+ if (tasksToRemove) {
267
+ [self ->_pendingTasks removeObjectsInArray: tasksToRemove];
268
+ }
258
269
259
270
// Start queued decode
260
271
NSInteger activeDecodes = self->_scheduledDecodes - self->_pendingDecodes .count ;
You can’t perform that action at this time.
0 commit comments