Skip to content

Commit 29269b4

Browse files
committed
Sanitizer sync
1 parent e3f8aba commit 29269b4

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

unified-runtime/source/loader/layers/sanitizer/sanitizer_common/sanitizer_utils.hpp

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,28 @@ ur_result_t EnqueueUSMSet(ur_queue_handle_t Queue, void *Ptr, T Value,
7575
const ur_event_handle_t *EventWaitList = nullptr,
7676
ur_event_handle_t *OutEvent = nullptr) {
7777
assert(Size % sizeof(T) == 0);
78-
return getContext()->urDdiTable.Enqueue.pfnUSMFill(
79-
Queue, Ptr, sizeof(T), &Value, Size, NumEvents, EventWaitList, OutEvent);
78+
ur_event_handle_t LocalEvent = nullptr;
79+
ur_event_handle_t *EventStorage = OutEvent ? OutEvent : &LocalEvent;
80+
81+
auto Result = getContext()->urDdiTable.Enqueue.pfnUSMFill(
82+
Queue, Ptr, sizeof(T), &Value, Size, NumEvents, EventWaitList,
83+
EventStorage);
84+
if (Result != UR_RESULT_SUCCESS) {
85+
return Result;
86+
}
87+
88+
if (!OutEvent && LocalEvent) {
89+
auto WaitResult = getContext()->urDdiTable.Event.pfnWait(1, &LocalEvent);
90+
auto ReleaseResult = getContext()->urDdiTable.Event.pfnRelease(LocalEvent);
91+
if (WaitResult != UR_RESULT_SUCCESS) {
92+
return WaitResult;
93+
}
94+
if (ReleaseResult != UR_RESULT_SUCCESS) {
95+
return ReleaseResult;
96+
}
97+
}
98+
99+
return Result;
80100
}
81101

82102
void PrintUrBuildLogIfError(ur_result_t Result, ur_program_handle_t Program,

0 commit comments

Comments
 (0)