
There was a discussion in the mailing how to make Boost.Test thread-safe. The problem is that Boost.Test needs to be boost-clean, because other libraries such as Boost.Thread etc. use it for testing. Therefore relying on Boost.Thread is not possible in such a case => requires the development of the proprietary thread-safety, synchronization etc. which works on all platforms where Boost.Test runs. On the other hand, not everyone requires thread-safety. Introducing it might slow down the test execution tremendously. So it is up to you how to implement you synchronization mechanisms :( and whether to implement them at all. Regards, Ovanes On Tue, Mar 23, 2010 at 9:28 PM, Dmytro Ovdiienko < dmitriy.ovdienko@gmail.com> wrote:
Guys,
I've just noticed BOOST_MESSAGE is not thread safe instruction. It is unbelievable!! I do not want to believe it!!!
Try this:
#define BOOST_TEST_MAIN #include
#include void foo() { for( size_t i = 0; i < 100000000; ++i ) { BOOST_MESSAGE( "111111122222222223333333333" ); } }
BOOST_AUTO_TEST_CASE( testBoost ) { size_t const SIZE = 2; boost::thread t[ SIZE ];
for( size_t i = 0; i < SIZE; ++i ) { t[ i ] = boost::thread( &foo ); }
for( size_t i = 0; i < SIZE; ++i ) { t[ i ].join(); } }
windows XP SP3 32bit VS 2008 SP1 boost 1.42
-- Dmytro Ovdiienko
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users