base: wrap __machine_rw_barrier() in function for Solaris

__machine_rw_barrier() assembly expansion cannot be treated as a function call
(as it is later in the heim_base_atomic_store() macro definition)
This commit is contained in:
Luke Howard
2023-01-07 20:39:46 +11:00
parent d33e3b0523
commit 8fcf05ac2e

View File

@@ -85,8 +85,14 @@
#elif defined(__sun)
#include <sys/atomic.h>
#include <mbarrier.h>
#define heim_base_atomic_barrier() __machine_rw_barrier()
static inline void __heim_base_atomic_barrier(void)
{
__machine_rw_barrier();
}
#define heim_base_atomic_barrier() __heim_base_atomic_barrier()
#define heim_base_atomic_inc(x) atomic_inc_uint_nv((volatile uint_t *)(x))
#define heim_base_atomic_dec(x) atomic_dec_uint_nv((volatile uint_t *)(x))