Hi everyone, can anyone send a simple container class
implementation, which supports concurrent reads and exclusive write. I’m seeking
for the usage of shared_lock for read/write mutex. My simple template class
snippet is shown below, please reply how to fill the comments for locking. Thnx.
// std
includes
#include
<vector>
// boost
includes
#include
<boost/thread/shared_mutex.hpp>
template
<typename T>
class
SharedContainer
{
public:
SharedContainer (void){}
~SharedContainer (void){}
void push_back(const T& value);
const T& at(int index) const;
private:
std::vector<T> m_buffer;
boost::shared_mutex
rw_mutex; //is this the correct class for rw mutex?
};
template
<typename T>
void
EntityUpdateBuffer<T>::push_back( const T& value )
{
// how to acquire a write lock?
m_buffer.push_back(value);
}
template
<typename T>
const
T& EntityUpdateBuffer<T>::at( int index ) const
{
// how to acquire read lock?
return m_buffer.at(index);
}
Selcuk Giray