used boost::atomic