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.