]> sourceware.org Git - glibc.git/blobdiff - nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
Update.
[glibc.git] / nptl / sysdeps / unix / sysv / linux / x86_64 / pthread_cond_broadcast.S
index d9185925a49e4885424826716ade97993059efa7..e6b2bbf19c5c27b72b6be90062a6a4b0af8789d2 100644 (file)
@@ -46,14 +46,14 @@ __pthread_cond_broadcast:
 
        /* Get internal lock.  */
        movl    $1, %esi
+       xorl    %eax, %eax
        LOCK
 #if cond_lock == 0
-       xaddl   %esi, (%rdi)
+       cmpxchgl %esi, (%rdi)
 #else
-       xaddl   %esi, cond_lock(%rdi)
+       cmpxchgl %esi, cond_lock(%rdi)
 #endif
-       testl   %esi, %esi
-       jne     1f
+       jnz     1f
 
 2:     addq    $wakeup_seq, %rdi
        movq    total_seq-wakeup_seq(%rdi), %rcx
This page took 0.02629 seconds and 5 git commands to generate.