diff options
author | Andy Wingo <wingo@pobox.com> | 2016-12-06 23:26:06 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2016-12-06 23:26:06 +0100 |
commit | b0ccf4dd4afab30c27a93cd8a84e67309cda723f (patch) | |
tree | d00f935ca6f0c6601f0c80f6d3bb74779efd8a43 | |
parent | 7ff3d3834d7d1c0cf7887468187fb5ee200fbdc0 (diff) | |
download | guile-b0ccf4dd4afab30c27a93cd8a84e67309cda723f.tar.gz |
Refine check for when atomics are available.
* configure.ac:
* libguile/atomics-internal.h: Use HAVE_STDATOMIC_H to know when to use
atomics.
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | libguile/atomics-internal.h | 8 |
2 files changed, 4 insertions, 5 deletions
diff --git a/configure.ac b/configure.ac index ab4f1f711..020151911 100644 --- a/configure.ac +++ b/configure.ac @@ -326,6 +326,7 @@ AC_SUBST([SCM_I_GSC_T_PTRDIFF]) AC_CHECK_HEADERS([stdint.h]) AC_CHECK_HEADERS([inttypes.h]) +AC_CHECK_HEADERS([stdatomic.h]) AC_CHECK_SIZEOF(intmax_t) diff --git a/libguile/atomics-internal.h b/libguile/atomics-internal.h index 9074d8cc3..f2d17e102 100644 --- a/libguile/atomics-internal.h +++ b/libguile/atomics-internal.h @@ -28,9 +28,7 @@ -#define HAVE_C11_ATOMICS (__STDC_VERSION__ >= 201112L && !defined(__STDC_NO_ATOMICS__)) - -#if HAVE_C11_ATOMICS +#ifdef HAVE_STDATOMIC_H #include <stdatomic.h> static inline uint32_t @@ -74,7 +72,7 @@ scm_atomic_compare_and_swap_scm (SCM *loc, SCM *expected, SCM desired) { return atomic_compare_exchange_weak (loc, expected, desired); } -#else /* HAVE_C11_ATOMICS */ +#else /* HAVE_STDATOMIC_H */ /* Fallback implementation using locks. */ #include "libguile/threads.h" @@ -171,6 +169,6 @@ scm_atomic_compare_and_swap_scm (SCM *loc, SCM *expected, SCM desired) return ret; } -#endif /* HAVE_C11_ATOMICS */ +#endif /* HAVE_STDATOMIC_H */ #endif /* SCM_ATOMICS_INTERNAL_H */ |