30 #ifndef _GLIBCXX_PROFILE_PROFILER_STATE_H
31 #define _GLIBCXX_PROFILE_PROFILER_STATE_H 1
33 namespace __gnu_profile
35 enum __state_type { __ON, __OFF, __INVALID };
37 _GLIBCXX_PROFILE_DEFINE_DATA(__state_type, __state, __INVALID);
40 __turn(__state_type __s)
42 __state_type inv(__INVALID);
43 return __atomic_compare_exchange_n(&_GLIBCXX_PROFILE_DATA(__state),
44 &inv, __s,
false, __ATOMIC_ACQ_REL,
50 {
return __turn(__ON); }
54 {
return __turn(__OFF); }
58 {
return _GLIBCXX_PROFILE_DATA(__state) == __ON; }
62 {
return _GLIBCXX_PROFILE_DATA(__state) == __OFF; }
66 {
return _GLIBCXX_PROFILE_DATA(__state) == __INVALID; }