From a3a42c3ca23e94d710bf3100965cc2146f11dbf8 Mon Sep 17 00:00:00 2001 From: Johannes Doerfert Date: Sat, 9 Apr 2022 00:12:44 -0500 Subject: [PATCH] [OpenMP][FIX] Ensure to set the context for wait events if necessary Differential Revision: https://reviews.llvm.org/D123445 --- openmp/libomptarget/plugins/cuda/src/rtl.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openmp/libomptarget/plugins/cuda/src/rtl.cpp b/openmp/libomptarget/plugins/cuda/src/rtl.cpp index f34d9079d1b8..d6cf1667bb94 100644 --- a/openmp/libomptarget/plugins/cuda/src/rtl.cpp +++ b/openmp/libomptarget/plugins/cuda/src/rtl.cpp @@ -1734,7 +1734,10 @@ int32_t __tgt_rtl_wait_event(int32_t device_id, void *event_ptr, assert(DeviceRTL.isValidDeviceId(device_id) && "device_id is invalid"); assert(async_info_ptr && "async_info_ptr is nullptr"); assert(event_ptr && "event is nullptr"); - // NOTE: We might not need to set context for event sync. + // If we don't have a queue we need to set the context. + if (!async_info_ptr->Queue && + DeviceRTL.setContext(device_id) != OFFLOAD_SUCCESS) + return OFFLOAD_FAIL; return DeviceRTL.waitEvent(device_id, async_info_ptr, event_ptr); }