[llvm-branch-commits] [llvm] [offload] Thread allocation kind through async info (PR #214755)
Kevin Sala Penades via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Aug 21 16:51:04 PDT 2026
================
@@ -1001,7 +1003,35 @@ Error GenericDeviceTy::queryAsync(__tgt_async_info *AsyncInfo,
return Plugin::error(ErrorCode::INVALID_ARGUMENT,
"invalid async info queue");
- return queryAsyncImpl(*AsyncInfo, ReleaseQueue, IsQueueWorkCompleted);
+ bool WorkCompleted = false;
+ SmallVector<std::pair<void *, TargetAllocTy>> AllocsToDelete{};
+
+ {
+ // Query and collect under the mutex, as synchronize does. Querying outside
+ // it would let an operation issued in between have its allocations freed
+ // here while it is still using them.
+ std::lock_guard<std::mutex> AllocationGuard{AsyncInfo->Mutex};
+ if (auto Err = queryAsyncImpl(*AsyncInfo, ReleaseQueue, &WorkCompleted)) {
+ if (IsQueueWorkCompleted)
+ *IsQueueWorkCompleted = WorkCompleted;
----------------
kevinsala wrote:
Is this really needed if we're returning an error?
https://github.com/llvm/llvm-project/pull/214755
More information about the llvm-branch-commits
mailing list