Changes since v5: - changes and simplifications as suggested by Jonathon - added patch that fixes device list handling in case of multiple device state change - there is still an open question regarding the last patch - should we drop it or mark public function as deprecated instead of making private Changes since v4: - changes and simplifications as suggested by Christophe - rebased to the latest master Changes since v3: - changes as suggested by Christophe - minor patch set reordering and beautifications Changes since v2: - remove spice_g_udev_handle_device_change api - cosmetic changes - set redirection state at usbdevice manager level - remove set_redirecton and set_sensitive_all - check for redirection state at check_can_redirect - expose mutex to guard all critical sections Changes since v1: - fix trailing whitespace - fix linux build with usb redirection - fix linux build without ussb redirection - set redirecting state as gobject property - separate commit for widget manipulations - commit messages fixes This patch series makes start/stop USB redirection flows run in their own threads. It solves spice-gtk freeze problems since start and stop redirection are time consuming operations. This series include new api exposure, threads syncronization and new usb redirection widget behavior. When redirection starts/ends widget will turn inactive/active. Dmitry Fleytman (2): win-usb-dev: Fix device (un)plug notification handler Kirill Moizik (12): usbredir: Introduce mutex for device (dis)connection win-usb-dev: Track device redirection operations in progress GUdevClient: Do not process USB hotplug events while redirection is in progress usbredir: Protect data accessed by asynchronous redirection flows usbredir: Spawn a different thread for device redirection flow UsbDeviceManager: Track device redirection operations in progress UsbDeviceManager: Implement asynchronous disconnect device flow UsbDeviceManager: Track device disconnection operations in progress usbredir: Disconnect USB device asynchronously UsbDeviceWidget: Show info bar during redirection flows UsbDeviceWidget: Consider asynchronous redirection flows UsbDeviceWidget: Use asynchronous disconnect API src/channel-usbredir-priv.h | 13 ++++ src/channel-usbredir.c | 148 ++++++++++++++++++++++++++++++----- src/map-file | 3 +- src/usb-device-manager.c | 185 +++++++++++++++++++++++++++++++++++++++----- src/usb-device-manager.h | 13 +++- src/usb-device-widget.c | 76 +++++++++++------- src/win-usb-dev.c | 158 ++++++++++++++++++++++++------------- 7 files changed, 475 insertions(+), 121 deletions(-) -- 2.5.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel