Flush data when download ends

This commit is contained in:
Guillaume Maudoux 2023-02-10 00:54:29 +01:00
parent 78fea899e0
commit aa18404ecb

View file

@ -828,17 +828,18 @@ void FileTransfer::download(FileTransferRequest && request, Sink & sink)
{
auto state(_state->lock());
if (state->quit) {
if (state->exc) std::rethrow_exception(state->exc);
return;
if (state->data.empty()) {
if (state->quit) {
if (state->exc) std::rethrow_exception(state->exc);
return;
}
state.wait(state->avail);
if (state->data.empty()) continue;
}
state.wait(state->avail);
if (state->data.empty()) continue;
chunk = std::move(state->data);
state->request.notify_one();
}