Module: kamailio Branch: master Commit: 47aa94c694e5471fa85bb15c372f9120876e4927 URL: https://github.com/kamailio/kamailio/commit/47aa94c694e5471fa85bb15c372f9120876e4927
Author: tsearle <[email protected]> Committer: tsearle <[email protected]> Date: 2016-02-25T09:56:09+01:00 core/futex: fix bug in futex_try atomic_cmpxchg returns the previous value. If the previous value was 0 then it was previously unlocked and we now have acquired the lock. Thus, it should be c==0 that is considered as the case we enter the lock, not c!=0 As far as I can tell, lock_try (and lock_set_try) are currently no used anywhere in the code, so this fix shoudn't have any impact --- Modified: futexlock.h --- Diff: https://github.com/kamailio/kamailio/commit/47aa94c694e5471fa85bb15c372f9120876e4927.diff Patch: https://github.com/kamailio/kamailio/commit/47aa94c694e5471fa85bb15c372f9120876e4927.patch --- diff --git a/futexlock.h b/futexlock.h index 7aa7c73..db2fca4 100644 --- a/futexlock.h +++ b/futexlock.h @@ -142,7 +142,7 @@ static inline int futex_try(futex_lock_t* lock) { int c; c=atomic_cmpxchg(lock, 0, 1); - if (likely(c)) + if (likely(c==0)) membar_enter_lock(); return c; } _______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
