📄 sync_access_test.cpp
字号:
#define BOOST_TEST_MODULE sync_access_test#include <boost/test/unit_test.hpp>#include <boost/thread.hpp>#include <boost/thread/barrier.hpp>#include <boost/bind.hpp>#include <boost/ref.hpp>using namespace boost;namespace ut = boost::unit_test;static boost::mutex m;/// thread execution functionstatic void thread_function(boost::barrier& b){ b.wait(); /// wait until memory barrier allows the execution boost::mutex::scoped_lock lock(m); /// lock mutex BOOST_CHECK_EQUAL(1,0); /// produce the fault}BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES( test_multiple_assertion_faults, 100 )/// test function which creates threadsBOOST_AUTO_TEST_CASE( test_multiple_assertion_faults ){ boost::thread_group tg; // thread group to manage all threads boost::barrier b(100); // memory barrier, which should block all threads // until all 100 threads were created for(size_t i=0; i<100; ++i) tg.create_thread(boost::bind(thread_function, ref(b))); /// create a thread and pass it the barrier tg.join_all();}// EOF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -