Loading...
--- Libc/Libc-763.13/pthreads/pthread_rwlock.c
+++ Libc/Libc-825.24/pthreads/pthread_rwlock.c
@@ -402,7 +402,7 @@
newval64 = (((uint64_t)newsval) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
goto loop;
/* Check for consistency */
lval = lcntval & PTHRW_BIT_MASK;
@@ -505,7 +505,7 @@
newval64 = (((uint64_t)(newsval)) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
goto loop;
kblock:
updateval = __psynch_rw_longrdlock(orwlock, newval, ucntval, newsval, rwlock->rw_flags);
@@ -564,7 +564,7 @@
newval64 = (((uint64_t)newsval) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
goto loop;
successout:
@@ -638,7 +638,7 @@
newval64 = (((uint64_t)newsval) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) == TRUE) {
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) == TRUE) {
goto gotit;
} else
goto loop;
@@ -658,7 +658,7 @@
newval64 = (((uint64_t)(newsval)) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
goto loop;
PLOCKSTAT_RW_BLOCK(orwlock, WRITE_LOCK_PLOCKSTAT);
@@ -774,7 +774,7 @@
newval64 = (((uint64_t)newsval) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) == TRUE) {
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) == TRUE) {
#if __DARWIN_UNIX03
rwlock->rw_owner = (pthread_t)0;
#endif /* __DARWIN_UNIX03 */
@@ -804,7 +804,7 @@
newval64 = (((uint64_t)newsval) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
goto loop;
#if __DARWIN_UNIX03
@@ -911,7 +911,7 @@
newval64 = (((uint64_t)(newsval)) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
goto loop;
flags = rwlock->rw_flags;
if (trylock != 0) {
@@ -1238,7 +1238,7 @@
newval64 = (((uint64_t)newsval) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
goto loop;
/* give writers priority over readers */
@@ -1303,7 +1303,7 @@
newval64 = (((uint64_t)newsval) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
goto loop;
#if _KSYN_TRACE_
@@ -1402,7 +1402,7 @@
newval64 = (((uint64_t)newsval) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
goto loop;
#if _KSYN_TRACE_
@@ -1484,7 +1484,7 @@
} else
newval64 = oldval64;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE) {
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE) {
goto loop;
}
if (gotlock == 1) {
@@ -1601,7 +1601,7 @@
if (__pthread_lock_debug != 0)
(void)__kdebug_trace(_KSYN_TRACE_RW_WRLOCK | DBG_FUNC_NONE, (uint32_t)rwlock, 0x55555555, lcntval, newval, 0);
#endif
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
goto loop;
/* lock acquired in userland itself? */
@@ -1722,7 +1722,7 @@
newval64 = (((uint64_t)newsval) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) == TRUE) {
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) == TRUE) {
/* spurious unlock, return */
error = EINVAL;
#if _KSYN_TRACE_
@@ -1745,7 +1745,7 @@
ulval = (ucntval + PTHRW_INC);
- if (OSAtomicCompareAndSwap32(ucntval, ulval, (volatile int32_t *)ucntaddr) != TRUE)
+ if (OSAtomicCompareAndSwap32Barrier(ucntval, ulval, (volatile int32_t *)ucntaddr) != TRUE)
goto loop;
lp11:
@@ -1755,7 +1755,7 @@
newval64 = oldval64;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE) {
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE) {
lcntval = *lcntaddr;
rw_seq = *seqaddr;
goto lp11;
@@ -1784,7 +1784,7 @@
newval64 = (((uint64_t)newsval) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE) {
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE) {
#if _KSYN_TRACE_
if (__pthread_lock_debug != 0)
(void)__kdebug_trace(_KSYN_TRACE_RW_UNLOCK | DBG_FUNC_NONE, (uint32_t)rwlock, 0xcccccccc, 0, 0, 0);
@@ -1837,7 +1837,7 @@
newval64 = (((uint64_t)newsval) << 32);
newval64 |= newval;
- if (OSAtomicCompareAndSwap64(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
+ if (OSAtomicCompareAndSwap64Barrier(oldval64, newval64, (volatile int64_t *)lcntaddr) != TRUE)
goto lp11;
#if _KSYN_TRACE_