|
Boost Users : |
Subject: [Boost-users] How to use scoped_lock
From: weii (willgunx_at_[hidden])
Date: 2010-03-20 01:16:45
Dear all,
I got a compiler(gcc 3.4.5) error while using boost.thread.
The following is my code:
-----------------------------------------------------------------------------------------------------------------------------
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/bind.hpp>
#include <iostream>
boost::mutex io_mutex;
void count(int id)
{
boost::mutex::scoped_lock lock(io_mutex,false);
for (int i = 0; i < 10; ++i)
{
lock.lock();
std::cout << id << ": " << i << std::endl;
lock.unlock();
}
}
int main(int argc, char* argv[])
{
boost::thread thrd1(count, 1);
boost::thread thrd2(count, 2);
thrd1.join();
thrd2.join();
return 0;
}
-----------------------------------------------------------------------------
I know I can just abandon the lock() and unlock() function since the
constructor and destructor will do them for me.
But I can't understand how this error occurs and why the compiler has
something to do with basic_timed_mutex.
Anyone can give me some clues?
Thanks in advance.
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