[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