https://bugs.winehq.org/show_bug.cgi?id=35192
--- Comment #86 from Sebastian Lackner sebastian@fds-team.de --- (In reply to Roland Baudin from comment #85)
This sounds like a very good news! I know it's difficult because I tried myself to do the job but I rapidly found I don't have the necessary skills... Nevertheless, I found a free implementation (Apache License) of the threadpool API in the FreeRDP project (http://www.freerdp.com/). However, I don't know if such work could be used for the wine project, but it's perhaps a good source of information... "Bon courage", as it's said in french!
Before I started working on it I also checked if there are any suitable existing implementations of course. Basically all of them only implemented a minimal subset of functions required for a particular use-case. It would not be possible to implement all features available on Windows with such a code as a basis.
I have just finished cleaning up my code, you can find it here: https://github.com/wine-compholio/wine-staging/tree/master/patches/ntdll-Vis...
It implements threadpools, cleanup groups, simple callbacks, work items, timer objects, callback instance functions, ... and probably some more functions. Nevertheless, it is still not complete - threadpool wait objects and threadpool IO objects are still missing. Moreover, I have to warn that this patchset wasn't really tested much with real world applications yet, only with a couple of winetests. It might be possible that there are some corner-cases left which I didn't consider yet while writing all this down in a hurry. ;) Please test this patchset and report back if it works. Lot of functions contain assertions, to make it easier to notice unexpected behaviour.