id summary reporter owner description type status milestone component version severity resolution keywords cc 3750 atomic_cas32 not working for Sun Solaris 10 SAURABH PANDEY Ion Gaztañaga "#include #include ""boost/interprocess/detail/atomic.hpp"" boost::uint32_t m_contextId = 0; long rtIncrContextId() { boost::uint32_t contextId = -1; boost::uint32_t oldValue = -1; do { oldValue = m_contextId; contextId = m_contextId + 1; if(boost::interprocess::detail::atomic_cas32((volatile boost::uint32_t *)&m_contextId,contextId,oldValue) == oldValue) break; }while (true); return contextId; } int main() { std::cout << "" \n Value of m_contextId "" << m_contextId; rtIncrContextId(); std::cout << "" \n Value of m_contextId "" << m_contextId << std::endl; } ''' The above program is not working on sun solaris 10 using sparc. g++ version is 4.4.2 and because of this sun sparc specific atomic operation are not being used . Instead following function is used''' ''#elif defined(__GNUC__) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 ) -------------------------------- ------------------------------ inline boost::uint32_t atomic_cas32 (volatile boost::uint32_t *mem, boost::uint32_t with, boost::uint32_t cmp) { return __sync_val_compare_and_swap(const_cast(mem), with, cmp); }''" Bugs closed Boost 1.42.0 interprocess Boost 1.40.0 Problem wontfix atomic_cas32 on Sun solaris 10 saurabh.pandey@…