SWDEV-292820 - Add a new notify lock
HSA signal calback may occur during the actual marker submit. That
may cause a deadlock, because shared lock_ object. Create the new
notify_lock_ field to protect the notification.
Change-Id: I9752af84e59895530620fac3932c6fc276de8658
[ROCm/clr commit: f34c1b9ff8]
This commit is contained in:
committato da
Maneesh Gupta
parent
c047842635
commit
0104c5817c
@@ -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) &&
|
||||
|
||||
@@ -89,6 +89,7 @@ class Event : public RuntimeObject {
|
||||
|
||||
private:
|
||||
Monitor lock_;
|
||||
Monitor notify_lock_; //!< Lock used for notification with direct dispatch only
|
||||
|
||||
std::atomic<CallBackEntry*> callbacks_; //!< linked list of callback entries.
|
||||
std::atomic<int32_t> status_; //!< current execution status.
|
||||
|
||||
Fai riferimento in un nuovo problema
Block a user