use std::atomic<>::compare_exchange_strong() to ensure message only appears once