aboutsummaryrefslogtreecommitdiff
path: root/src/zenutil
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2025-05-20 18:43:41 +0200
committerGitHub Enterprise <[email protected]>2025-05-20 18:43:41 +0200
commit47cba21817608be9232e9d0a55bf01a313d4be2c (patch)
treed6fdc355af5c4b6f4a494b70dbb43ab4db9cf4d7 /src/zenutil
parentMerge pull request #402 from ue-foundation/zs/fix-oplog-import-oplog-creation (diff)
downloadzen-47cba21817608be9232e9d0a55bf01a313d4be2c.tar.xz
zen-47cba21817608be9232e9d0a55bf01a313d4be2c.zip
use explicit capture for lambdas (#404)
Diffstat (limited to 'src/zenutil')
-rw-r--r--src/zenutil/jupiter/jupitersession.cpp47
1 files changed, 27 insertions, 20 deletions
diff --git a/src/zenutil/jupiter/jupitersession.cpp b/src/zenutil/jupiter/jupitersession.cpp
index de138f994..01a703a1b 100644
--- a/src/zenutil/jupiter/jupitersession.cpp
+++ b/src/zenutil/jupiter/jupitersession.cpp
@@ -697,28 +697,35 @@ JupiterSession::GetMultipartBuildBlob(std::string_view Namespace,
while (Offset < TotalSize)
{
uint64_t PartSize = Min(ChunkSize, TotalSize - Offset);
- OutWorkItems.emplace_back(
- [this, Namespace, BucketId, BuildId, Hash, TotalSize, Workload, Offset, PartSize]() -> JupiterResult {
- std::string RequestUrl = fmt::format("/api/v2/builds/{}/{}/{}/blobs/{}?supportsRedirect={}",
- Namespace,
- BucketId,
- BuildId,
- Hash.ToHexString(),
- m_AllowRedirect ? "true"sv : "false"sv);
- HttpClient::Response Response = m_HttpClient.Get(
- RequestUrl,
- HttpClient::KeyValueMap({{"Range", fmt::format("bytes={}-{}", Offset, Offset + PartSize - 1)}}));
- if (Response.IsSuccess())
+ OutWorkItems.emplace_back([this,
+ Namespace = std::string(Namespace),
+ BucketId = std::string(BucketId),
+ BuildId = Oid(BuildId),
+ Hash = IoHash(Hash),
+ TotalSize,
+ Workload,
+ Offset,
+ PartSize]() -> JupiterResult {
+ std::string RequestUrl = fmt::format("/api/v2/builds/{}/{}/{}/blobs/{}?supportsRedirect={}",
+ Namespace,
+ BucketId,
+ BuildId,
+ Hash.ToHexString(),
+ m_AllowRedirect ? "true"sv : "false"sv);
+ HttpClient::Response Response = m_HttpClient.Get(
+ RequestUrl,
+ HttpClient::KeyValueMap({{"Range", fmt::format("bytes={}-{}", Offset, Offset + PartSize - 1)}}));
+ if (Response.IsSuccess())
+ {
+ Workload->OnReceive(Offset, Response.ResponsePayload);
+ uint64_t ByteRemaning = Workload->BytesRemaining.fetch_sub(Response.ResponsePayload.GetSize());
+ if (ByteRemaning == Response.ResponsePayload.GetSize())
{
- Workload->OnReceive(Offset, Response.ResponsePayload);
- uint64_t ByteRemaning = Workload->BytesRemaining.fetch_sub(Response.ResponsePayload.GetSize());
- if (ByteRemaning == Response.ResponsePayload.GetSize())
- {
- Workload->OnComplete();
- }
+ Workload->OnComplete();
}
- return detail::ConvertResponse(Response, "JupiterSession::GetMultipartBuildBlob"sv);
- });
+ }
+ return detail::ConvertResponse(Response, "JupiterSession::GetMultipartBuildBlob"sv);
+ });
Offset += PartSize;
}
}