13 Eylül 2017 Çarşamba

atomic

Giriş
Şu satırı dahil ederiz.
#include <boost/atomic.hpp>
int olarak kullanabiliriz.
boost::atomic <int> m;
atomic_store metodu - boost::shared_ptr
Metodun içi şöyle
template<class T>
void atomic_store( shared_ptr<T> * p, shared_ptr<T> r ) BOOST_SP_NOEXCEPT
{
  boost::detail::spinlock_pool<2>::scoped_lock lock( p );
  p->swap( r );
}
Şöyle yaparız
namespace pcl {
  struct PointXYZ {};
  template <typename P> struct PointCloud {
  };
}


using pc = pcl::PointCloud<pcl::PointXYZ>;
boost::shared_ptr<pc> p             = boost::make_shared<pc>();
boost::shared_ptr<const pc> const_p = boost::make_shared<pc>();

// This is legal
const_p = p;

// The atomic equivalent is too
boost::atomic_store<pc const>(&const_p, p);
fetch_add metodu
Örnek
Şöyle yaparız
#include <boost/atomic.hpp>

boost::atomic<int> g(0) ;

g.fetch_add(1, boost::;memory_order_relaxed)

Hiç yorum yok:

Yorum Gönder