Boost logo

Boost :

From: David Brownell (david_brownell_at_[hidden])
Date: 2004-11-30 22:35:26


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:
- 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
- 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.

Thanks for your help!
David Brownell


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk