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.
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 <boost/test/unit_test.hpp>
#include <boost/thread/thread.hpp>
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 32bitVS 2008 SP1boost 1.42--
Dmytro Ovdiienko
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users