Fix soft hang on AQLQueue destruction with a timeout
Add timeout to AQLQueue destructor signal wait to prevent indefinite hang Change-Id: I6c6c98a7bdd27d39569af1d667aa9aa7e9596535 Signed-off-by: Chris Freehill <cfreehil@amd.com>
Cette révision appartient à :
révisé par
Chris Freehill
Parent
2f05c2a273
révision
4e9647704d
@@ -365,8 +365,11 @@ AqlQueue::~AqlQueue() {
|
||||
// Remove kfd exception handler
|
||||
exceptionState |= ERROR_HANDLER_TERMINATE;
|
||||
while ((exceptionState & ERROR_HANDLER_DONE) != ERROR_HANDLER_DONE) {
|
||||
const uint64_t timeout_ms = 5000;
|
||||
|
||||
exception_signal_->StoreRelease(-1ull);
|
||||
exception_signal_->WaitRelaxed(HSA_SIGNAL_CONDITION_NE, -1ull, -1ull, HSA_WAIT_STATE_BLOCKED);
|
||||
exception_signal_->WaitRelaxed(HSA_SIGNAL_CONDITION_NE, -1ull, timeout_ms,
|
||||
HSA_WAIT_STATE_BLOCKED);
|
||||
}
|
||||
|
||||
Inactivate();
|
||||
|
||||
Référencer dans un nouveau ticket
Bloquer un utilisateur