When running the simple program listed below, the scoped_read_lock appears
to never acquire a read lock on the mutex and, as a result, the program
never finishes. In looking through the documentation, I don't think there
is anything additional I need to do and was a bit surprised that this didn't
work. Here is the code:
boost::read_write_mutex
m(static_cast(alternating_many_reads));
std::cout << "Before\n";
{
boost::read_write_mutex::scoped_write_lock l(m);
}
std::cout << "Middle\n";
{
boost::read_write_mutex::scoped_read_lock l(m);
}
std::cout << "After\n";
And some more details:
- test_read_write_mutex.cpp completed without problems
- writer_priority and reader_priority completed without problems. Only
alternating_many_reads and alternating_single_read seem to have problems.
- Windows XP SP2
- Microsoft Visual Studio 2003
- I am compiling with the Multithreaded DLL version of the CRT, so
boost_thread-vc71-mt-gd-1_32.lib is being used
Thanks for your help!
David Brownell