在 x86-64 上,我对关键部分使用简单的自旋锁:
mov al,1
LoopWait:
xchg byte ptr[mlock], al
test al,al
jz Free
pause
jmp LoopWait
Free:
并退出cs:
mov byte ptr[mlock], 0
在解锁之前是否需要栅栏指令,以便刷新临界区中的存储操作?
在 x86-64 上,我对关键部分使用简单的自旋锁:
mov al,1
LoopWait:
xchg byte ptr[mlock], al
test al,al
jz Free
pause
jmp LoopWait
Free:
并退出cs:
mov byte ptr[mlock], 0
在解锁之前是否需要栅栏指令,以便刷新临界区中的存储操作?