USB: Cancel queued transfers before waiting for idle.
Otherwise, stuck transfers will cause us to hit the not-idle assertion. Should fix #19180.
This commit is contained in:
@@ -21,9 +21,10 @@ Pipe::Pipe(Object *parent)
|
|||||||
|
|
||||||
Pipe::~Pipe()
|
Pipe::~Pipe()
|
||||||
{
|
{
|
||||||
PutUSBID();
|
PutUSBID(false);
|
||||||
|
|
||||||
Pipe::CancelQueuedTransfers(true);
|
Pipe::CancelQueuedTransfers(true);
|
||||||
|
WaitForIdle();
|
||||||
|
|
||||||
GetBusManager()->NotifyPipeChange(this, USB_CHANGE_DESTROYED);
|
GetBusManager()->NotifyPipeChange(this, USB_CHANGE_DESTROYED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user