Jig*_*uff 2 c inline-assembly spinlock
我正在尝试在我的代码中实现一个自旋锁,但是我基于Wikipedia实现的自旋锁导致了极慢的性能.
int lockValue = 0;
void lock() {
    __asm__("loop: \n\t"
            "movl $1, %eax \n\t"
            "xchg %eax, lockValue \n\t"
            "test %eax, %eax \n\t"
            "jnz loop");
}
有没有办法改善这一点,使其更快?
谢谢.
这样的事情怎么样(我明白这是KeAcquireSpinLock实现).不幸的是,我的at&t大会很弱.
spin_lock:
    rep; nop
    test lockValue, 1
    jnz spin_lock
    lock bts lockValue
    jc spin_lock
| 归档时间: | 
 | 
| 查看次数: | 895 次 | 
| 最近记录: |