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,6 +828,7 @@ void FileTransfer::download(FileTransferRequest && request, Sink & sink)
{ {
auto state(_state->lock()); auto state(_state->lock());
if (state->data.empty()) {
if (state->quit) { if (state->quit) {
if (state->exc) std::rethrow_exception(state->exc); if (state->exc) std::rethrow_exception(state->exc);
return; return;
@ -836,9 +837,9 @@ void FileTransfer::download(FileTransferRequest && request, Sink & sink)
state.wait(state->avail); state.wait(state->avail);
if (state->data.empty()) continue; if (state->data.empty()) continue;
}
chunk = std::move(state->data); chunk = std::move(state->data);
state->request.notify_one(); state->request.notify_one();
} }