diff --git a/rocclr/platform/command.cpp b/rocclr/platform/command.cpp index 9cc8b4cce9..4c53d55c52 100644 --- a/rocclr/platform/command.cpp +++ b/rocclr/platform/command.cpp @@ -265,7 +265,7 @@ bool Event::awaitCompletion() { bool Event::notifyCmdQueue() { HostQueue* queue = command().queue(); if (AMD_DIRECT_DISPATCH) { - ScopedLock l(lock_); + ScopedLock l(notify_lock_); if ((status() > CL_COMPLETE) && (nullptr != queue) && // If HW event was assigned, then notification can be ignored, since a barrier was issued (HwEvent() == nullptr) && diff --git a/rocclr/platform/command.hpp b/rocclr/platform/command.hpp index 487b7a98db..36e71360a7 100644 --- a/rocclr/platform/command.hpp +++ b/rocclr/platform/command.hpp @@ -89,6 +89,7 @@ class Event : public RuntimeObject { private: Monitor lock_; + Monitor notify_lock_; //!< Lock used for notification with direct dispatch only std::atomic callbacks_; //!< linked list of callback entries. std::atomic status_; //!< current execution status.