00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef BOOST_LOCKFREE_BRANCH_HINTS_HPP_INCLUDED
00011 #define BOOST_LOCKFREE_BRANCH_HINTS_HPP_INCLUDED
00012
00013 namespace boost
00014 {
00015 namespace lockfree
00016 {
00018 inline bool likely(bool expr)
00019 {
00020 #ifdef __GNUC__
00021 return __builtin_expect(expr, true);
00022 #else
00023 return expr;
00024 #endif
00025 }
00026
00028 inline bool unlikely(bool expr)
00029 {
00030 #ifdef __GNUC__
00031 return __builtin_expect(expr, false);
00032 #else
00033 return expr;
00034 #endif
00035 }
00036
00037 }
00038 }
00039
00040 #endif