28 lines
487 B
C++
28 lines
487 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();
|
||
|
}
|
||
|
}
|
||
|
}
|