[Wine-patches] usbhub.sys: Set event also if error.

Alexander Morozov =?iso-8859-1?q?amorozov_=CE=C1_etersoft=2Eru?=
Чт Апр 30 17:46:28 MSD 2009


Патч исправляет допущенную при добавлении поддержки libusb-1.0 ошибку,
приводяющую к заметному замедлению запуска на машинах, на которых
libusb_get_device_list завершается неудачно (например, builder). Замедление
было связано с тем, что enum_usb_devices завершается, не устанавливая
событие, которое ждёт services.
----------- следующая часть -----------
From 7ac31f8bd27814c5d02a4d86bafcab477ffcb4da Mon Sep 17 00:00:00 2001
From: Alexander Morozov <amorozov на etersoft.ru>
Date: Thu, 30 Apr 2009 17:34:06 +0400
Subject: [eterhack] usbhub.sys: Set event also if error.

---
 dlls/usbhub.sys/usbhub.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/dlls/usbhub.sys/usbhub.c b/dlls/usbhub.sys/usbhub.c
index 5d42461..c1ebb61 100644
--- a/dlls/usbhub.sys/usbhub.c
+++ b/dlls/usbhub.sys/usbhub.c
@@ -714,19 +714,19 @@ static DWORD CALLBACK enum_usb_devices( void *usbhubdrv )
     if (!enum_reg_usb_devices())
     {
         ERR( "failed to enumerate USB devices\n" );
-        return 1;
+        goto end;
     }
 
 #ifdef HAVE_LIBUSB_H
     if (libusb_init( NULL ))
     {
         ERR( "failed to initialize libusb\n" );
-        return 1;
+        goto end;
     }
     if (libusb_get_device_list( NULL, &devs ) < 0)
     {
         libusb_exit( NULL );
-        return 1;
+        goto end;
     }
     while ((dev = devs[i++]))
     {
@@ -814,6 +814,7 @@ static DWORD CALLBACK enum_usb_devices( void *usbhubdrv )
             }
 #endif
 
+end:
     event = CreateEventW( NULL, TRUE, FALSE, usbhub_started_eventW );
     SetEvent( event );
     CloseHandle( event );
-- 
1.6.1.3.GIT



Подробная информация о списке рассылки Wine-patches