diff options
Diffstat (limited to 'src/zenserver')
| -rw-r--r-- | src/zenserver/projectstore/projectstore.cpp | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/src/zenserver/projectstore/projectstore.cpp b/src/zenserver/projectstore/projectstore.cpp index 1e53dfd94..afb2c100c 100644 --- a/src/zenserver/projectstore/projectstore.cpp +++ b/src/zenserver/projectstore/projectstore.cpp @@ -938,7 +938,7 @@ ProjectStore::Oplog::IterateChunks(std::span<Oid> ChunkIds, { break; } - OptionalWorkerPool->ScheduleWork([&]() { + OptionalWorkerPool->ScheduleWork([&WorkLatch, ChunkIndex, &FileChunkIndexes, &FileChunkPaths, &AsyncCallback, &Result]() { auto _ = MakeGuard([&WorkLatch]() { WorkLatch.CountDown(); }); if (Result.load() == false) { @@ -2730,30 +2730,27 @@ ProjectStore::GetProjectFiles(const std::string_view ProjectId, RawSizes.resize(Ids.size(), 0u); } - for (size_t Index = 0; Index < Ids.size(); Index++) - { - FoundLog->IterateChunks( - Ids, - [&](size_t Index, const IoBuffer& Payload) { - uint64_t Size = Payload.GetSize(); - if (WantsRawSizeField) - { - uint64_t RawSize = Size; - if (Payload.GetContentType() == ZenContentType::kCompressedBinary) - { - IoHash __; - (void)CompressedBuffer::FromCompressed(SharedBuffer(Payload), __, RawSize); - } - RawSizes[Index] = RawSize; - } - if (WantsSizeField) + FoundLog->IterateChunks( + Ids, + [&](size_t Index, const IoBuffer& Payload) { + uint64_t Size = Payload.GetSize(); + if (WantsRawSizeField) + { + uint64_t RawSize = Size; + if (Payload.GetContentType() == ZenContentType::kCompressedBinary) { - Sizes[Index] = Size; + IoHash __; + (void)CompressedBuffer::FromCompressed(SharedBuffer(Payload), __, RawSize); } - return true; - }, - &GetSmallWorkerPool()); - } + RawSizes[Index] = RawSize; + } + if (WantsSizeField) + { + Sizes[Index] = Size; + } + return true; + }, + &GetSmallWorkerPool()); } CbObjectWriter Response; |