From 6bc4255ecd25658b430cec1f6191e0044c5e6c7f Mon Sep 17 00:00:00 2001 From: reillyg Date: Thu, 4 Feb 2016 14:45:36 -0800 Subject: Make UsbDeviceHandle::ReleaseInterface asynchronous. This patch adds a callback to UsbDeviceHandle::ReleaseInterface that is called when the interface has been released. Previously this result was returned synchronously while the actual release operation happened in the background. In the process I've fixed an issue where libusb_release_interface could have been called from the UI thread if there were no pending transfers to delay it. BUG=None Review URL: https://codereview.chromium.org/1664023002 Cr-Commit-Position: refs/heads/master@{#373641} --- device/devices_app/usb/device_impl.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'device/devices_app/usb/device_impl.cc') diff --git a/device/devices_app/usb/device_impl.cc b/device/devices_app/usb/device_impl.cc index ae8ad40..2eb3ed5 100644 --- a/device/devices_app/usb/device_impl.cc +++ b/device/devices_app/usb/device_impl.cc @@ -303,7 +303,8 @@ void DeviceImpl::ReleaseInterface(uint8_t interface_number, return; } - callback.Run(device_handle_->ReleaseInterface(interface_number)); + device_handle_->ReleaseInterface(interface_number, + WrapMojoCallback(callback)); } void DeviceImpl::SetInterfaceAlternateSetting( -- cgit v1.1