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.