13
0
livetrax/libs/pbd/test/rcu_test.h

36 lines
614 B
C
Raw Normal View History

2020-11-04 20:24:54 -05:00
#include <string>
#include <pthread.h>
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
#include "pbd/rcu.h"
class RCUTest : public CppUnit::TestFixture
{
CPPUNIT_TEST_SUITE (RCUTest);
CPPUNIT_TEST (race);
CPPUNIT_TEST_SUITE_END ();
public:
RCUTest ();
void setUp ();
void race ();
void read_thread ();
void write_thread ();
private:
class Value {
public:
Value (std::string const& v)
: val (v)
{}
std::string val;
};
typedef std::map<std::string, boost::shared_ptr<Value> > Values;
SerializedRCUManager<Values> _values;
pthread_barrier_t _barrier;
};