Corrected implementation of compare_exchange_... functions that used wrong order of arguments passed to macros and wrong comparison to compute result because the order of the arguments for these functions and for macros is different.

git-svn-id: https://svn.eiffel.com/eiffelstudio/trunk@96071 8089f293-4706-0410-a29e-feb5c42a2edf
Replaced function pointers and calls on them with an explicit function that marks reachable objects.
Removed unused references to C++11 synchronization classes.
Replaced calls to memory barriers with macros that do the same, but work on non-C++11 platforms.


git-svn-id: https://svn.eiffel.com/eiffelstudio/trunk@96072 8089f293-4706-0410-a29e-feb5c42a2edf
Removed const specifier and added volatile specifier to avoid errors in atomic_size_t::load when compiled with GCC.

git-svn-id: https://svn.eiffel.com/eiffelstudio/trunk@96075 8089f293-4706-0410-a29e-feb5c42a2edf