Commit dce7a61f authored by Jinoh Kang's avatar Jinoh Kang Committed by Alexandre Julliard

msvcp90: 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.
parent 94512ecc
......@@ -239,7 +239,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
{
......@@ -289,7 +289,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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment