diff --git a/projects/clr/rocclr/platform/commandqueue.cpp b/projects/clr/rocclr/platform/commandqueue.cpp index 9375b4324f..6dde23d923 100644 --- a/projects/clr/rocclr/platform/commandqueue.cpp +++ b/projects/clr/rocclr/platform/commandqueue.cpp @@ -59,11 +59,11 @@ HostQueue::HostQueue(Context& context, Device& device, cl_command_queue_properti bool HostQueue::terminate() { if (AMD_DIRECT_DISPATCH) { if (vdev() != nullptr) { - Command* marker = new Marker(*this, true); - if (marker != nullptr) { - marker->enqueue(); - marker->awaitCompletion(); - marker->release(); + // If the queue still has the last command, then wait and release it + if (lastEnqueueCommand_ != nullptr) { + lastEnqueueCommand_->awaitCompletion(); + lastEnqueueCommand_->release(); + lastEnqueueCommand_ = nullptr; } } thread_.Release();