Nikolay Sivov (@nsivov) commented about dlls/rtworkq/queue.c:
static void queue_release_pending_item(struct work_item *item) {
- BOOL should_release = FALSE; EnterCriticalSection(&item->queue->cs); if (item->key) { list_remove(&item->entry); item->key = 0;
IUnknown_Release(&item->IUnknown_iface);
} LeaveCriticalSection(&item->queue->cs);should_release = TRUE;
- if (should_release)
IUnknown_Release(&item->IUnknown_iface);
}
Just add a temp "struct queue *", and keep the rest as is.