adjust sequence of cleaning

This commit is contained in:
gb 2023-08-21 16:13:37 +08:00
parent de3f54f835
commit e8a7f8a684
1 changed files with 7 additions and 5 deletions

View File

@ -481,6 +481,7 @@ void usb_device::clear(void)
{
if (cfg_desc_[i]->usb_if[j].altsetting->endpoint)
delete[] cfg_desc_[i]->usb_if[j].altsetting->endpoint;
delete cfg_desc_[i]->usb_if[j].altsetting;
}
delete[] cfg_desc_[i]->usb_if;
}
@ -1230,6 +1231,12 @@ void usb_monitor::quit(void)
{
KillTimer(wnd_monitor_, usb_monitor::find_usb_timer_);
run_ = false;
if (IsWindow(wnd_monitor_))
{
PostMessage(wnd_monitor_, WM_QUIT, 0, 0);
Sleep(100);
}
if (handle_msg_.get())
{
PostThreadMessageW(handle_msg_id_, WM_QUIT, 0, 0);
@ -1238,11 +1245,6 @@ void usb_monitor::quit(void)
handle_msg_.reset();
}
if (IsWindow(wnd_monitor_))
{
PostMessage(wnd_monitor_, WM_QUIT, 0, 0);
}
{
std::lock_guard<std::mutex> lock(lock_);
for (auto& v : devices_)