mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-10 08:16:15 +02:00
Fix race downloading into a sink
This fixes 'error 10 while decompressing xz file'. https://hydra.nixos.org/build/78308551
This commit is contained in:
parent
d9e8ab0ff2
commit
4b4adbc93d
1 changed files with 8 additions and 6 deletions
|
@ -718,15 +718,17 @@ void Downloader::download(DownloadRequest && request, Sink & sink)
|
|||
while (true) {
|
||||
checkInterrupt();
|
||||
|
||||
if (state->quit) {
|
||||
if (state->exc) std::rethrow_exception(state->exc);
|
||||
break;
|
||||
}
|
||||
|
||||
/* If no data is available, then wait for the download thread
|
||||
to wake us up. */
|
||||
if (state->data.empty())
|
||||
if (state->data.empty()) {
|
||||
|
||||
if (state->quit) {
|
||||
if (state->exc) std::rethrow_exception(state->exc);
|
||||
break;
|
||||
}
|
||||
|
||||
state.wait(state->avail);
|
||||
}
|
||||
|
||||
/* If data is available, then flush it to the sink and wake up
|
||||
the download thread if it's blocked on a full buffer. */
|
||||
|
|
Loading…
Reference in a new issue