HTTP reader: Keep track of task suspend/resume so we don't stall trying to resume an already running stream

CQTexperiment
Christopher Snowhill 2021-12-22 00:14:19 -08:00
parent b2ae62a4db
commit 45ee8b01df
2 changed files with 5 additions and 1 deletions

View File

@ -31,6 +31,7 @@
long _bytesBuffered;
long _byteCount;
BOOL taskSuspended;
NSString *_mimeType;
}

View File

@ -104,6 +104,7 @@
}
if (bytesBuffered >= BUFFER_SIZE) {
[task suspend];
taskSuspended = YES;
}
}
@ -182,6 +183,7 @@ didCompleteWithError:(NSError *)error{
didReceiveResponse = NO;
didReceiveRandomData = NO;
redirected = NO;
taskSuspended = NO;
redirectURLs = [[NSMutableArray alloc] init];
bufferedData = [[NSMutableData alloc] init];
@ -262,8 +264,9 @@ didCompleteWithError:(NSError *)error{
bytesBuffered = _bytesBuffered;
}
if (!didComplete && bytesBuffered <= (BUFFER_SIZE * 3 / 4)) {
if (!didComplete && taskSuspended && bytesBuffered <= (BUFFER_SIZE * 3 / 4)) {
[task resume];
taskSuspended = NO;
}
totalRead += amountReceived;