Overview
Comment: | OFOnce: Avoid full memory barrier |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
12b72a02a06720a35ec42d836e5d428e |
User & Date: | js on 2024-09-04 23:27:17 |
Other Links: | manifest | tags |
Context
2024-09-04
| ||
23:30 | OFMemoryBarrier: Use sync on PowerPC check-in: 259abc30ce user: js tags: trunk | |
23:27 | OFOnce: Avoid full memory barrier check-in: dc1ba0558c user: js tags: 1.1 | |
23:27 | OFOnce: Avoid full memory barrier check-in: 12b72a02a0 user: js tags: trunk | |
2024-09-01
| ||
14:22 | Add manpage for ofhttp check-in: 79c24effeb user: js tags: trunk | |
Changes
Modified src/OFOnce.m from [06c9cd7dc5] to [6e21212113].
︙ | ︙ | |||
45 46 47 48 49 50 51 | pthread_once(control, function); #elif defined(OF_HAVE_ATOMIC_OPS) /* Avoid atomic operations in case it's already done. */ if (*control == 2) return; if (OFAtomicIntCompareAndSwap(control, 0, 1)) { | < < | > > > | 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | pthread_once(control, function); #elif defined(OF_HAVE_ATOMIC_OPS) /* Avoid atomic operations in case it's already done. */ if (*control == 2) return; if (OFAtomicIntCompareAndSwap(control, 0, 1)) { OFAcquireMemoryBarrier(); function(); OFAtomicIntIncrease(control); OFReleaseMemoryBarrier(); } else while (*control == 1) OFYieldThread(); #elif defined(OF_AMIGAOS) bool run = false; /* Avoid Forbid() in case it's already done. */ |
︙ | ︙ |