26 #include "boost/smart_ptr/detail/yield_k.hpp"
69 std::shared_ptr<T const>
reader ()
const
71 std::shared_ptr<T> rv;
98 virtual bool update (std::shared_ptr<T> new_value) = 0;
150 void init (std::shared_ptr<T> object_to_be_managed) {
161 typename std::list<std::shared_ptr<T> >::iterator i;
164 if ((*i).unique ()) {
195 bool update (std::shared_ptr<T> new_value)
219 boost::detail::yield (i);
270 std::lock_guard<std::mutex> lm (
_lock);
307 if (
_copy.unique ()) {
std::shared_ptr< T > * PtrToSharedPtr
virtual bool update(std::shared_ptr< T > new_value)=0
std::atomic< PtrToSharedPtr > managed_object
virtual std::shared_ptr< T > write_copy()=0
std::atomic< int > _active_reads
std::shared_ptr< T const > reader() const
RCUManager(T *object_to_be_managed)
std::shared_ptr< T > get_copy() const
RCUManager< T > & _manager
RCUWriter(RCUManager< T > &manager)
std::shared_ptr< T > _copy
RCUManager< T >::PtrToSharedPtr _current_write_old
std::shared_ptr< T > write_copy()
void init(std::shared_ptr< T > object_to_be_managed)
SerializedRCUManager(T *new_managed_object)
std::list< std::shared_ptr< T > > _dead_wood
bool update(std::shared_ptr< T > new_value)