HTTP reader: Keep track of task suspend/resume so we don't stall trying to resume an already running stream
parent
b2ae62a4db
commit
45ee8b01df
|
@ -31,6 +31,7 @@
|
||||||
|
|
||||||
long _bytesBuffered;
|
long _bytesBuffered;
|
||||||
long _byteCount;
|
long _byteCount;
|
||||||
|
BOOL taskSuspended;
|
||||||
|
|
||||||
NSString *_mimeType;
|
NSString *_mimeType;
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,6 +104,7 @@
|
||||||
}
|
}
|
||||||
if (bytesBuffered >= BUFFER_SIZE) {
|
if (bytesBuffered >= BUFFER_SIZE) {
|
||||||
[task suspend];
|
[task suspend];
|
||||||
|
taskSuspended = YES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,6 +183,7 @@ didCompleteWithError:(NSError *)error{
|
||||||
didReceiveResponse = NO;
|
didReceiveResponse = NO;
|
||||||
didReceiveRandomData = NO;
|
didReceiveRandomData = NO;
|
||||||
redirected = NO;
|
redirected = NO;
|
||||||
|
taskSuspended = NO;
|
||||||
|
|
||||||
redirectURLs = [[NSMutableArray alloc] init];
|
redirectURLs = [[NSMutableArray alloc] init];
|
||||||
bufferedData = [[NSMutableData alloc] init];
|
bufferedData = [[NSMutableData alloc] init];
|
||||||
|
@ -262,8 +264,9 @@ didCompleteWithError:(NSError *)error{
|
||||||
bytesBuffered = _bytesBuffered;
|
bytesBuffered = _bytesBuffered;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!didComplete && bytesBuffered <= (BUFFER_SIZE * 3 / 4)) {
|
if (!didComplete && taskSuspended && bytesBuffered <= (BUFFER_SIZE * 3 / 4)) {
|
||||||
[task resume];
|
[task resume];
|
||||||
|
taskSuspended = NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
totalRead += amountReceived;
|
totalRead += amountReceived;
|
||||||
|
|
Loading…
Reference in New Issue