Boost logo

Boost Users :

From: David Brownell (david_brownell_at_[hidden])
Date: 2004-11-26 03:13:51


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<boost::read_write_scheduling_policy::read_write_scheduling_pol
icy_enum>(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


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net