Hi Ovanes,

Thank you for reply.

IMHO there is no problem if:

- boost::test depends on boost::thread 
- boost::thread has no dependencies
- boost::thread::test depends on: boost::test + boost::thread

As for locking on my side. It will be really slow if I will lock every statement. Actually locking is needed only when code needs to write to the stream. If test expression is ok, no locking should be performed. 

On test performance, if you need good performance in test, remove BOOST_MESSAGE. Also in singe thread test application locking will not dramatically affect performance.




On 24 March 2010 12:21, Ovanes Markarian <om_boost@keywallet.com> wrote:
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 <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 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


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users



--
Dmytro Ovdiienko
e-mail: dmitriy.ovdienko@gmail.com
skype: dmitriy.ovdienko@gmail.com
mobile: +38050-1909731