24 lines
453 B
C++
24 lines
453 B
C++
namespace factor {
|
|
namespace atomic {
|
|
FACTOR_FORCE_INLINE static cell load(volatile cell* ptr) {
|
|
atomic::fence();
|
|
return *ptr;
|
|
}
|
|
|
|
FACTOR_FORCE_INLINE static fixnum load(volatile fixnum* ptr) {
|
|
atomic::fence();
|
|
return *ptr;
|
|
}
|
|
|
|
FACTOR_FORCE_INLINE static void store(volatile cell* ptr, cell val) {
|
|
*ptr = val;
|
|
atomic::fence();
|
|
}
|
|
|
|
FACTOR_FORCE_INLINE static void store(volatile fixnum* ptr, fixnum val) {
|
|
*ptr = val;
|
|
atomic::fence();
|
|
}
|
|
}
|
|
}
|