We are following the C++11 standard's concept of thead safety which is it is safe to have multiple threads call membe function of an object only if all those functions are const. Swap is not const and therefore we are not expecting it to be safe to call concurrently.