Overview
Comment: | of_memory_barrier -> OFMemoryBarrier |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | new-naming-convention |
Files: | files | file ages | folders |
SHA3-256: |
1cdf56dc9e5f4b001b2509d8717f8c82 |
User & Date: | js on 2021-04-18 23:41:04 |
Other Links: | branch diff | manifest | tags |
Context
2021-04-19
| ||
20:50 | Fix a few forgotten of_forward check-in: b886536090 user: js tags: new-naming-convention | |
2021-04-18
| ||
23:41 | of_memory_barrier -> OFMemoryBarrier check-in: 1cdf56dc9e user: js tags: new-naming-convention | |
23:36 | A few more renames for consistency check-in: bd7addd9e8 user: js tags: new-naming-convention | |
Changes
Modified src/OFAtomic_builtins.h from [faa8445463] to [100821f588].
︙ | ︙ | |||
128 129 130 131 132 133 134 | void *_Nullable o, void *_Nullable n) { return __atomic_compare_exchange(p, &o, &n, false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); } static OF_INLINE void | | | | | 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | void *_Nullable o, void *_Nullable n) { return __atomic_compare_exchange(p, &o, &n, false, __ATOMIC_RELAXED, __ATOMIC_RELAXED); } static OF_INLINE void OFMemoryBarrier(void) { __atomic_thread_fence(__ATOMIC_SEQ_CST); } static OF_INLINE void OFAcquireMemoryBarrier(void) { __atomic_thread_fence(__ATOMIC_ACQUIRE); } static OF_INLINE void OFReleaseMemoryBarrier(void) { __atomic_thread_fence(__ATOMIC_RELEASE); } |
Modified src/OFAtomic_no_threads.h from [6020e5ba6e] to [428a9e720d].
︙ | ︙ | |||
140 141 142 143 144 145 146 | return true; } return false; } static OF_INLINE void | | | | | 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | return true; } return false; } static OF_INLINE void OFMemoryBarrier(void) { /* nop */ } static OF_INLINE void OFAcquireMemoryBarrier(void) { /* nop */ } static OF_INLINE void OFReleaseMemoryBarrier(void) { /* nop */ } |
Modified src/OFAtomic_osatomic.h from [9f3398c71a] to [52d5cd31b9].
︙ | ︙ | |||
135 136 137 138 139 140 141 | OFAtomicPointerCompareAndSwap(void *volatile _Nullable *_Nonnull p, void *_Nullable o, void *_Nullable n) { return OSAtomicCompareAndSwapPtr(o, n, p); } static OF_INLINE void | | | | | 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | OFAtomicPointerCompareAndSwap(void *volatile _Nullable *_Nonnull p, void *_Nullable o, void *_Nullable n) { return OSAtomicCompareAndSwapPtr(o, n, p); } static OF_INLINE void OFMemoryBarrier(void) { OSMemoryBarrier(); } static OF_INLINE void OFAcquireMemoryBarrier(void) { OSMemoryBarrier(); } static OF_INLINE void OFReleaseMemoryBarrier(void) { OSMemoryBarrier(); } |
Modified src/OFAtomic_powerpc.h from [fb429fc6e7] to [b84702cb04].
︙ | ︙ | |||
369 370 371 372 373 374 375 | : "cc", "memory" ); return r; } static OF_INLINE void | | | | | 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 | : "cc", "memory" ); return r; } static OF_INLINE void OFMemoryBarrier(void) { __asm__ __volatile__ ( ".long 0x7C2004AC /* lwsync */" ::: "memory" ); } static OF_INLINE void OFAcquireMemoryBarrier(void) { __asm__ __volatile__ ( ".long 0x7C2004AC /* lwsync */" ::: "memory" ); } static OF_INLINE void OFReleaseMemoryBarrier(void) { __asm__ __volatile__ ( ".long 0x7C2004AC /* lwsync */" ::: "memory" ); } |
Modified src/OFAtomic_sync_builtins.h from [ca7c72a3e0] to [cebe486547].
︙ | ︙ | |||
125 126 127 128 129 130 131 | OFAtomicPointerCompareAndSwap(void *volatile _Nullable *_Nonnull p, void *_Nullable o, void *_Nullable n) { return __sync_bool_compare_and_swap(p, o, n); } static OF_INLINE void | | | | | 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | OFAtomicPointerCompareAndSwap(void *volatile _Nullable *_Nonnull p, void *_Nullable o, void *_Nullable n) { return __sync_bool_compare_and_swap(p, o, n); } static OF_INLINE void OFMemoryBarrier(void) { __sync_synchronize(); } static OF_INLINE void OFAcquireMemoryBarrier(void) { __sync_synchronize(); } static OF_INLINE void OFReleaseMemoryBarrier(void) { __sync_synchronize(); } |
Modified src/OFAtomic_x86.h from [7a6e063b7c] to [b0f56d0157].
︙ | ︙ | |||
476 477 478 479 480 481 482 | : "cc" ); return r; } static OF_INLINE void | | | | | 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 | : "cc" ); return r; } static OF_INLINE void OFMemoryBarrier(void) { __asm__ __volatile__ ( "mfence" ::: "memory" ); } static OF_INLINE void OFAcquireMemoryBarrier(void) { __asm__ __volatile__ ("" ::: "memory"); } static OF_INLINE void OFReleaseMemoryBarrier(void) { __asm__ __volatile__ ("" ::: "memory"); } OF_ASSUME_NONNULL_END |
Modified src/OFObject.m from [2194068b85] to [eafb73f421].
︙ | ︙ | |||
1132 1133 1134 1135 1136 1137 1138 | assert(PRE_IVARS->retainCount >= 0); return PRE_IVARS->retainCount; } - (void)release { #if defined(OF_HAVE_ATOMIC_OPS) | | | | 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 | assert(PRE_IVARS->retainCount >= 0); return PRE_IVARS->retainCount; } - (void)release { #if defined(OF_HAVE_ATOMIC_OPS) OFReleaseMemoryBarrier(); if (OFAtomicIntDecrease(&PRE_IVARS->retainCount) <= 0) { OFAcquireMemoryBarrier(); [self dealloc]; } #elif defined(OF_AMIGAOS) int retainCount; Forbid(); |
︙ | ︙ |
Modified src/OFOnce.m from [7b34c9bf7f] to [ac90a9eaf1].
︙ | ︙ | |||
41 42 43 44 45 46 47 | /* Avoid atomic operations in case it's already done. */ if (*control == 2) return; if (OFAtomicIntCompareAndSwap(control, 0, 1)) { func(); | | | 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | /* Avoid atomic operations in case it's already done. */ if (*control == 2) return; if (OFAtomicIntCompareAndSwap(control, 0, 1)) { func(); OFMemoryBarrier(); OFAtomicIntIncrease(control); } else while (*control == 1) OFYieldThread(); #elif defined(OF_AMIGAOS) bool run = false; |
︙ | ︙ |
Modified src/OFPlainMutex.h from [182f54ad45] to [f2be57e77e].
︙ | ︙ | |||
105 106 107 108 109 110 111 | } static OF_INLINE int OFSpinlockTryLock(OFSpinlock *spinlock) { #if defined(OF_HAVE_ATOMIC_OPS) if (OFAtomicIntCompareAndSwap(spinlock, 0, 1)) { | | | 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | } static OF_INLINE int OFSpinlockTryLock(OFSpinlock *spinlock) { #if defined(OF_HAVE_ATOMIC_OPS) if (OFAtomicIntCompareAndSwap(spinlock, 0, 1)) { OFAcquireMemoryBarrier(); return 0; } return EBUSY; #elif defined(OF_HAVE_PTHREAD_SPINLOCKS) return pthread_spin_trylock(spinlock); #else |
︙ | ︙ | |||
144 145 146 147 148 149 150 | static OF_INLINE int OFSpinlockUnlock(OFSpinlock *spinlock) { #if defined(OF_HAVE_ATOMIC_OPS) bool ret = OFAtomicIntCompareAndSwap(spinlock, 1, 0); | | | 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | static OF_INLINE int OFSpinlockUnlock(OFSpinlock *spinlock) { #if defined(OF_HAVE_ATOMIC_OPS) bool ret = OFAtomicIntCompareAndSwap(spinlock, 1, 0); OFReleaseMemoryBarrier(); return (ret ? 0 : EINVAL); #elif defined(OF_HAVE_PTHREAD_SPINLOCKS) return pthread_spin_unlock(spinlock); #else return OFPlainMutexUnlock(spinlock); #endif |
︙ | ︙ |