diff --git a/rocclr/runtime/platform/command.cpp b/rocclr/runtime/platform/command.cpp index 5ced2fe631..98f13d014b 100644 --- a/rocclr/runtime/platform/command.cpp +++ b/rocclr/runtime/platform/command.cpp @@ -88,7 +88,10 @@ Event::setStatus(cl_int status, uint64_t timeStamp) timeStamp = recordProfilingInfo(status, timeStamp); } - status_ = status; + if (!make_atomic(status_).compareAndSet(currentStatus, status)) { + // Somebody else beat us to it, let them deal with the release/signal. + return false; + } if (callbacks_ != (CallBackEntry*)0) { processCallbacks(status);