https://bugs.winehq.org/show_bug.cgi?id=45084
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression Regression SHA1| |ae347f99a40c35ce526cd689d99 | |bdec8c29a3700 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Summary|'winehid' service failed to |winebus blocks startup for |start and slow down |several seconds when HID |wineserver (then all wine |devices are detected via |app) |udev CC| |z.figura12@gmail.com Component|hid |winebus.sys
--- Comment #11 from Zebediah Figura z.figura12@gmail.com --- Confirming and filling some fields.
When winebus encounters a new device, it loads the driver, which potentially means loading winehid. In the driver entry point a thread to do this for udev devices is spun off, and normally this thread executes asynchronously, but at first an initial list of devices is built and the main thread blocks until this occurs (see the "init_done" event in dlls/winebus.sys/bus_udev.c). As far as I understand the driver point is executed under the SCM database lock (programs/services/services.c, scmdatabase_[un]lock[_startup]()). According to Aric Stewart the driver is supposed to be loaded asynchronously, but I can't tell where the asynchronicity is supposed to occur.