Nikolay Sivov (@nsivov) commented about dlls/rtworkq/queue.c:
- if (item->work_object) - CloseThreadpoolWork(item->work_object); + switch(item->type) { + case WORK_ITEM_WORK: + if (item->u.work_object) + CloseThreadpoolWork(item->u.work_object); + break; + case WORK_ITEM_WAIT: + if (item->u.wait_object) + CloseThreadpoolWait(item->u.wait_object); + break; + case WORK_ITEM_TIMER: + if (item->u.timer_object) + CloseThreadpoolTimer(item->u.timer_object); + break; + } I somehow convinced myself that cleanup groups take care of that, evidently not. Please reformat this a bit, to match how it's done in this file.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/3950#note_46687