mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
parent
1d7ad701b4
commit
b3858d5d97
3 changed files with 13 additions and 10 deletions
|
@ -944,20 +944,16 @@ void Reader::loadForDownloader(
|
||||||
_loader->attachDownloader(downloader);
|
_loader->attachDownloader(downloader);
|
||||||
}
|
}
|
||||||
_downloaderOffsetRequests.emplace(uint32(offset));
|
_downloaderOffsetRequests.emplace(uint32(offset));
|
||||||
if (_streamingActive) {
|
// Will be processed in continueDownloaderFromMainThread()
|
||||||
wakeFromSleep();
|
// from StreamedFileDownloader::requestParts().
|
||||||
} else {
|
|
||||||
processDownloaderRequests();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Reader::doneForDownloader(int64 offset) {
|
void Reader::doneForDownloader(int64 offset) {
|
||||||
Expects(offset >= 0 && offset <= std::numeric_limits<uint32>::max());
|
Expects(offset >= 0 && offset <= std::numeric_limits<uint32>::max());
|
||||||
|
|
||||||
_downloaderOffsetAcks.emplace(offset);
|
_downloaderOffsetAcks.emplace(offset);
|
||||||
if (!_streamingActive) {
|
// Will be processed in continueDownloaderFromMainThread()
|
||||||
processDownloaderRequests();
|
// from StreamedFileDownloader::requestParts().
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Reader::cancelForDownloader(
|
void Reader::cancelForDownloader(
|
||||||
|
@ -1104,10 +1100,15 @@ bool Reader::downloaderWaitForCachedSlice(uint32 offset) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Reader::checkCacheResultsForDownloader() {
|
void Reader::checkCacheResultsForDownloader() {
|
||||||
|
continueDownloaderFromMainThread();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Reader::continueDownloaderFromMainThread() {
|
||||||
if (_streamingActive) {
|
if (_streamingActive) {
|
||||||
return;
|
wakeFromSleep();
|
||||||
|
} else {
|
||||||
|
processDownloaderRequests();
|
||||||
}
|
}
|
||||||
processDownloaderRequests();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Reader::setLoaderPriority(int priority) {
|
void Reader::setLoaderPriority(int priority) {
|
||||||
|
|
|
@ -77,6 +77,7 @@ public:
|
||||||
void doneForDownloader(int64 offset);
|
void doneForDownloader(int64 offset);
|
||||||
void cancelForDownloader(
|
void cancelForDownloader(
|
||||||
not_null<Storage::StreamedFileDownloader*> downloader);
|
not_null<Storage::StreamedFileDownloader*> downloader);
|
||||||
|
void continueDownloaderFromMainThread();
|
||||||
|
|
||||||
~Reader();
|
~Reader();
|
||||||
|
|
||||||
|
|
|
@ -88,6 +88,7 @@ void StreamedFileDownloader::requestParts() {
|
||||||
&& _partsRequested < kRequestPartsCount) {
|
&& _partsRequested < kRequestPartsCount) {
|
||||||
requestPart();
|
requestPart();
|
||||||
}
|
}
|
||||||
|
_reader->continueDownloaderFromMainThread();
|
||||||
}
|
}
|
||||||
|
|
||||||
void StreamedFileDownloader::requestPart() {
|
void StreamedFileDownloader::requestPart() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue