Nikolay Sivov (@nsivov) commented about dlls/rtworkq/queue.c:
IUnknown_Release(result->state); if (result->result.hEvent) CloseHandle(result->result.hEvent);
free(result);
RtwqUnlockPlatform();
if (!async_result_cache_push(result))
{
free(result);
RtwqUnlockPlatform();
}
This free-unlock pattern is used at least twice, I think a helper would be better. Like free_async_result() or similar.