16 Oct
2025
16 Oct
'25
2 p.m.
Jinoh Kang (@iamahuman) commented about dlls/ntdll/sync.c:
for (;;) { ULONG_PTR val = (ULONG_PTR)once->Ptr;
```suggestion:-0+0 ULONG_PTR val = (ULONG_PTR)ReadPointerAcquire( &once->Ptr ); ``` `RTL_RUN_ONCE_ASYNC` permits multiple threads to race to completion. Non-atomic read here may lead to data race, and lack of ordering if other thread has already completed the initialization (run once). -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9178#note_118735