Drop the requirement for lock free stdatomic, it was used incorrectly anyway as the value can be 0, 1, or 2

This commit is contained in:
Ondřej Surý
2018-08-13 14:56:27 +02:00
parent 7069e2af7a
commit ee8d78a475
3 changed files with 9 additions and 8 deletions

View File

@@ -95,9 +95,10 @@ ISC_LANG_BEGINDECLS
* Sample implementations
*/
#ifdef ISC_PLATFORM_USETHREADS
#if (defined(ISC_PLATFORM_HAVESTDATOMIC) && defined(ATOMIC_INT_LOCK_FREE)) || defined(ISC_PLATFORM_HAVEXADD)
#if defined(ISC_PLATFORM_HAVESTDATOMIC) || defined(ISC_PLATFORM_HAVEXADD)
#define ISC_REFCOUNT_HAVEATOMIC 1
#if (defined(ISC_PLATFORM_HAVESTDATOMIC) && defined(ATOMIC_INT_LOCK_FREE))
#if defined(ISC_PLATFORM_HAVESTDATOMIC)
#define ISC_REFCOUNT_HAVESTDATOMIC 1
#endif

View File

@@ -35,9 +35,9 @@ typedef enum {
} isc_rwlocktype_t;
#ifdef ISC_PLATFORM_USETHREADS
#if (defined(ISC_PLATFORM_HAVESTDATOMIC) && defined(ATOMIC_INT_LOCK_FREE)) || (defined(ISC_PLATFORM_HAVEXADD) && defined(ISC_PLATFORM_HAVECMPXCHG))
#if defined(ISC_PLATFORM_HAVESTDATOMIC) || (defined(ISC_PLATFORM_HAVEXADD) && defined(ISC_PLATFORM_HAVECMPXCHG))
#define ISC_RWLOCK_USEATOMIC 1
#if (defined(ISC_PLATFORM_HAVESTDATOMIC) && defined(ATOMIC_INT_LOCK_FREE))
#if defined(ISC_PLATFORM_HAVESTDATOMIC)
#define ISC_RWLOCK_USESTDATOMIC 1
#endif
#endif

View File

@@ -39,10 +39,10 @@
* increment and store operations, just to make
* the later macros simpler
*/
#if (defined(ISC_PLATFORM_HAVESTDATOMIC) && defined(ATOMIC_LONG_LOCK_FREE)) || \
#if defined(ISC_PLATFORM_HAVESTDATOMIC) || \
(defined(ISC_PLATFORM_HAVEXADDQ) && defined(ISC_PLATFORM_HAVEATOMICSTOREQ))
#define ISC_STATS_HAVEATOMICQ 1
#if (defined(ISC_PLATFORM_HAVESTDATOMIC) && defined(ATOMIC_LONG_LOCK_FREE))
#if defined(ISC_PLATFORM_HAVESTDATOMIC)
#define ISC_STATS_HAVESTDATOMICQ 1
#endif
#else
@@ -72,9 +72,9 @@
* Otherwise, just rely on standard 64-bit data types
* and operations
*/
#if !ISC_STATS_HAVEATOMICQ && ((defined(ISC_PLATFORM_HAVESTDATOMIC) && defined(ATOMIC_INT_LOCK_FREE)) || defined(ISC_PLATFORM_HAVEXADD))
#if !ISC_STATS_HAVEATOMICQ && (defined(ISC_PLATFORM_HAVESTDATOMIC) || defined(ISC_PLATFORM_HAVEXADD))
#define ISC_STATS_USEMULTIFIELDS 1
#if (defined(ISC_PLATFORM_HAVESTDATOMIC) && defined(ATOMIC_INT_LOCK_FREE))
#if defined(ISC_PLATFORM_HAVESTDATOMIC)
#define ISC_STATS_HAVESTDATOMIC 1
#endif
#else