base: rename heim_base_atomic_{max,type} to ...integer_{max,type}

Rename heim_base_atomic_max to heim_base_atomic_integer_max (ditto with _type)
in order to better reflect their usage, now we have a separate
heim_base_atomic() macro for making an atomic version of any type.
This commit is contained in:
Luke Howard
2020-07-13 10:03:34 +10:00
parent 504d059580
commit 4986ebcb67
2 changed files with 25 additions and 25 deletions

View File

@@ -54,8 +54,8 @@
#define heim_base_atomic_inc(x) (atomic_fetch_add((x), 1) + 1) #define heim_base_atomic_inc(x) (atomic_fetch_add((x), 1) + 1)
#define heim_base_atomic_dec(x) (atomic_fetch_sub((x), 1) - 1) #define heim_base_atomic_dec(x) (atomic_fetch_sub((x), 1) - 1)
#define heim_base_atomic_type heim_base_atomic(unsigned int) #define heim_base_atomic_integer_type heim_base_atomic(unsigned int)
#define heim_base_atomic_max UINT_MAX #define heim_base_atomic_integer_max UINT_MAX
#define heim_base_exchange_pointer(t,v) atomic_exchange((t), (v)) #define heim_base_exchange_pointer(t,v) atomic_exchange((t), (v))
#define heim_base_exchange_32(t,v) atomic_exchange((t), (v)) #define heim_base_exchange_32(t,v) atomic_exchange((t), (v))
@@ -67,8 +67,8 @@
#define heim_base_atomic_inc(x) __sync_add_and_fetch((x), 1) #define heim_base_atomic_inc(x) __sync_add_and_fetch((x), 1)
#define heim_base_atomic_dec(x) __sync_sub_and_fetch((x), 1) #define heim_base_atomic_dec(x) __sync_sub_and_fetch((x), 1)
#define heim_base_atomic_type unsigned int #define heim_base_atomic_integer_type unsigned int
#define heim_base_atomic_max UINT_MAX #define heim_base_atomic_integer_max UINT_MAX
#ifndef __has_builtin #ifndef __has_builtin
#define __has_builtin(x) 0 #define __has_builtin(x) 0
@@ -92,8 +92,8 @@
#define heim_base_atomic_inc(x) atomic_inc_uint_nv((volatile uint_t *)(x)) #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)) #define heim_base_atomic_dec(x) atomic_dec_uint_nv((volatile uint_t *)(x))
#define heim_base_atomic_type uint_t #define heim_base_atomic_integer_type uint_t
#define heim_base_atomic_max UINT_MAX #define heim_base_atomic_integer_max UINT_MAX
#define heim_base_exchange_pointer(t,v) atomic_swap_ptr((volatile void *)(t), (void *)(v)) #define heim_base_exchange_pointer(t,v) atomic_swap_ptr((volatile void *)(t), (void *)(v))
#define heim_base_exchange_32(t,v) atomic_swap_32((volatile uint32_t *)(t), (v)) #define heim_base_exchange_32(t,v) atomic_swap_32((volatile uint32_t *)(t), (v))
@@ -107,8 +107,8 @@
#define heim_base_atomic_inc(x) (fetch_and_add((atomic_p)(x)) + 1) #define heim_base_atomic_inc(x) (fetch_and_add((atomic_p)(x)) + 1)
#define heim_base_atomic_dec(x) (fetch_and_add((atomic_p)(x)) - 1) #define heim_base_atomic_dec(x) (fetch_and_add((atomic_p)(x)) - 1)
#define heim_base_atomic_type unsigned int #define heim_base_atomic_integer_type unsigned int
#define heim_base_atomic_max UINT_MAX #define heim_base_atomic_integer_max UINT_MAX
static inline void * static inline void *
heim_base_exchange_pointer(void *p, void *newval) heim_base_exchange_pointer(void *p, void *newval)
@@ -149,8 +149,8 @@ heim_base_exchange_64(uint64_t *p, uint64_t newval)
#define heim_base_atomic_inc(x) InterlockedIncrement(x) #define heim_base_atomic_inc(x) InterlockedIncrement(x)
#define heim_base_atomic_dec(x) InterlockedDecrement(x) #define heim_base_atomic_dec(x) InterlockedDecrement(x)
#define heim_base_atomic_type LONG #define heim_base_atomic_integer_type LONG
#define heim_base_atomic_max MAXLONG #define heim_base_atomic_integer_max MAXLONG
#define heim_base_exchange_pointer(t,v) InterlockedExchangePointer((PVOID volatile *)(t), (PVOID)(v)) #define heim_base_exchange_pointer(t,v) InterlockedExchangePointer((PVOID volatile *)(t), (PVOID)(v))
#define heim_base_exchange_32(t,v) ((ULONG)InterlockedExchange((LONG volatile *)(t), (LONG)(v))) #define heim_base_exchange_32(t,v) ((ULONG)InterlockedExchange((LONG volatile *)(t), (LONG)(v)))
@@ -163,23 +163,23 @@ heim_base_exchange_64(uint64_t *p, uint64_t newval)
#define HEIM_BASE_NEED_ATOMIC_MUTEX 1 #define HEIM_BASE_NEED_ATOMIC_MUTEX 1
extern HEIMDAL_MUTEX _heim_base_mutex; extern HEIMDAL_MUTEX _heim_base_mutex;
#define heim_base_atomic_type unsigned int #define heim_base_atomic_integer_type unsigned int
#define heim_base_atomic_max UINT_MAX #define heim_base_atomic_integer_max UINT_MAX
static inline heim_base_atomic_type static inline heim_base_atomic_integer_type
heim_base_atomic_inc(heim_base_atomic_type *x) heim_base_atomic_inc(heim_base_atomic_integer_type *x)
{ {
heim_base_atomic_type t; heim_base_atomic_integer_type t;
HEIMDAL_MUTEX_lock(&_heim_base_mutex); HEIMDAL_MUTEX_lock(&_heim_base_mutex);
t = ++(*x); t = ++(*x);
HEIMDAL_MUTEX_unlock(&_heim_base_mutex); HEIMDAL_MUTEX_unlock(&_heim_base_mutex);
return t; return t;
} }
static inline heim_base_atomic_type static inline heim_base_atomic_integer_type
heim_base_atomic_dec(heim_base_atomic_type *x) heim_base_atomic_dec(heim_base_atomic_integer_type *x)
{ {
heim_base_atomic_type t; heim_base_atomic_integer_type t;
HEIMDAL_MUTEX_lock(&_heim_base_mutex); HEIMDAL_MUTEX_lock(&_heim_base_mutex);
t = --(*x); t = --(*x);
HEIMDAL_MUTEX_unlock(&_heim_base_mutex); HEIMDAL_MUTEX_unlock(&_heim_base_mutex);

View File

@@ -36,11 +36,11 @@
#include "baselocl.h" #include "baselocl.h"
#include <syslog.h> #include <syslog.h>
static heim_base_atomic_type tidglobal = HEIM_TID_USER; static heim_base_atomic_integer_type tidglobal = HEIM_TID_USER;
struct heim_base { struct heim_base {
heim_type_t isa; heim_type_t isa;
heim_base_atomic_type ref_cnt; heim_base_atomic_integer_type ref_cnt;
HEIM_TAILQ_ENTRY(heim_base) autorel; HEIM_TAILQ_ENTRY(heim_base) autorel;
heim_auto_release_t autorelpool; heim_auto_release_t autorelpool;
uintptr_t isaextra[3]; uintptr_t isaextra[3];
@@ -49,7 +49,7 @@ struct heim_base {
/* specialized version of base */ /* specialized version of base */
struct heim_base_mem { struct heim_base_mem {
heim_type_t isa; heim_type_t isa;
heim_base_atomic_type ref_cnt; heim_base_atomic_integer_type ref_cnt;
HEIM_TAILQ_ENTRY(heim_base) autorel; HEIM_TAILQ_ENTRY(heim_base) autorel;
heim_auto_release_t autorelpool; heim_auto_release_t autorelpool;
const char *name; const char *name;
@@ -91,7 +91,7 @@ heim_retain(void *ptr)
if (ptr == NULL || heim_base_is_tagged(ptr)) if (ptr == NULL || heim_base_is_tagged(ptr))
return ptr; return ptr;
if (p->ref_cnt == heim_base_atomic_max) if (p->ref_cnt == heim_base_atomic_integer_max)
return ptr; return ptr;
if ((heim_base_atomic_inc(&p->ref_cnt) - 1) == 0) if ((heim_base_atomic_inc(&p->ref_cnt) - 1) == 0)
@@ -108,13 +108,13 @@ heim_retain(void *ptr)
void void
heim_release(void *ptr) heim_release(void *ptr)
{ {
heim_base_atomic_type old; heim_base_atomic_integer_type old;
struct heim_base *p = PTR2BASE(ptr); struct heim_base *p = PTR2BASE(ptr);
if (ptr == NULL || heim_base_is_tagged(ptr)) if (ptr == NULL || heim_base_is_tagged(ptr))
return; return;
if (p->ref_cnt == heim_base_atomic_max) if (p->ref_cnt == heim_base_atomic_integer_max)
return; return;
old = heim_base_atomic_dec(&p->ref_cnt) + 1; old = heim_base_atomic_dec(&p->ref_cnt) + 1;
@@ -156,7 +156,7 @@ void
_heim_make_permanent(heim_object_t ptr) _heim_make_permanent(heim_object_t ptr)
{ {
struct heim_base *p = PTR2BASE(ptr); struct heim_base *p = PTR2BASE(ptr);
p->ref_cnt = heim_base_atomic_max; p->ref_cnt = heim_base_atomic_integer_max;
} }