diff options
author | Chris Robinson <[email protected]> | 2012-01-12 06:13:24 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2012-01-12 06:13:24 -0800 |
commit | 530597347c664277d91d5efc7fff8d10092f2e20 (patch) | |
tree | 442fbceda77ca45bfb8c89f4e722e24074614fae /Alc/ALc.c | |
parent | c543611897e03eb89feb0885eb61010f5f94a515 (diff) |
Safely insert the new context into the list
Diffstat (limited to 'Alc/ALc.c')
-rw-r--r-- | Alc/ALc.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -2205,8 +2205,9 @@ ALC_API ALCcontext* ALC_APIENTRY alcCreateContext(ALCdevice *device, const ALCin ALCdevice_IncRef(device); InitContext(ALContext); - ALContext->next = device->ContextList; - device->ContextList = ALContext; + do { + ALContext->next = device->ContextList; + } while(!CompExchangePtr((XchgPtr*)&device->ContextList, ALContext->next, ALContext)); UnlockLists(); ALCdevice_DecRef(device); |