]> gitweb.factorcode.org Git - factor.git/blob - vm/atomic.hpp
vm: forgot to add atomic.hpp
[factor.git] / vm / atomic.hpp
1 namespace factor {
2         namespace atomic {
3                 FACTOR_FORCE_INLINE static cell load(volatile cell *ptr)
4                 {
5                         atomic::fence();
6                         return *ptr;
7                 }
8
9                 FACTOR_FORCE_INLINE static fixnum load(volatile fixnum *ptr)
10                 {
11                         atomic::fence();
12                         return *ptr;
13                 }
14
15                 FACTOR_FORCE_INLINE static void store(volatile cell *ptr, cell val)
16                 {
17                         *ptr = val;
18                         atomic::fence();
19                 }
20
21                 FACTOR_FORCE_INLINE static void store(volatile fixnum *ptr, fixnum val)
22                 {
23                         *ptr = val;
24                         atomic::fence();
25                 }
26         }
27 }