1
0
mirror of https://github.com/wine-mirror/wine synced 2024-07-08 03:45:57 +00:00

concrt140: Use atomic write for releasing threadsafe_queue spin lock.

This fixes data race in ARM/ARM64 platforms, and prevents potential
memory access reordering by the compiler.
This commit is contained in:
Jinoh Kang 2022-09-18 23:31:19 +09:00 committed by Alexandre Julliard
parent d1e23696df
commit 94512ecc12

View File

@ -225,7 +225,7 @@ static void threadsafe_queue_push(threadsafe_queue *queue, size_t id,
queue->tail = p;
if(!queue->head)
queue->head = p;
queue->lock = 0;
WriteRelease(&queue->lock, 0);
}
else
{
@ -275,7 +275,7 @@ static BOOL threadsafe_queue_pop(threadsafe_queue *queue, size_t id,
queue->head = p->_Next;
if(!queue->head)
queue->tail = NULL;
queue->lock = 0;
WriteRelease(&queue->lock, 0);
/* TODO: Add exception handling */
call__Concurrent_queue_base_v4__Deallocate_page(parent, p);