Index: boost/thread/condition.hpp =================================================================== RCS file: /home/src/boost/boost/thread/condition.hpp,v retrieving revision 1.1.1.4 diff -c -r1.1.1.4 condition.hpp *** boost/thread/condition.hpp 26 Nov 2004 15:45:30 -0000 1.1.1.4 --- boost/thread/condition.hpp 9 Jun 2005 16:53:47 -0000 *************** *** 74,79 **** --- 74,81 ---- } // namespace detail + struct null_mutex; + class condition : private noncopyable { public: *************** *** 129,134 **** --- 131,141 ---- private: detail::condition_impl m_impl; + void do_wait(null_mutex &) + { + throw cv_wait_with_null_mutex_error(); + } + template void do_wait(M& mutex) { *************** *** 153,158 **** --- 160,170 ---- lock_ops::lock(mutex, state); #undef lock_ops + } + + bool do_timed_wait(null_mutex &) + { + throw cv_wait_with_null_mutex_error(); } template Index: boost/thread/exceptions.hpp =================================================================== RCS file: /home/src/boost/boost/thread/exceptions.hpp,v retrieving revision 1.1.1.3 diff -c -r1.1.1.3 exceptions.hpp *** boost/thread/exceptions.hpp 26 Nov 2004 15:45:30 -0000 1.1.1.3 --- boost/thread/exceptions.hpp 9 Jun 2005 16:53:47 -0000 *************** *** 92,97 **** --- 92,107 ---- virtual const char* what() const throw(); }; + class BOOST_THREAD_DECL cv_wait_with_null_mutex_error : public thread_exception + { + public: + virtual const char* what() const throw() + { + return "boost::cv_wait_with_null_mutex_error"; + } + }; + + } // namespace boost #endif // BOOST_THREAD_CONFIG_PDM070801_H Index: boost/thread/mutex.hpp =================================================================== RCS file: /home/src/boost/boost/thread/mutex.hpp,v retrieving revision 1.1.1.3 diff -c -r1.1.1.3 mutex.hpp *** boost/thread/mutex.hpp 26 Nov 2004 15:45:30 -0000 1.1.1.3 --- boost/thread/mutex.hpp 9 Jun 2005 16:53:47 -0000 *************** *** 156,161 **** --- 156,181 ---- #endif }; + class BOOST_THREAD_DECL null_mutex + : private noncopyable + { + public: + friend class detail::thread::lock_ops; + + typedef detail::thread::scoped_lock scoped_lock; + typedef detail::thread::scoped_try_lock scoped_try_lock; + typedef detail::thread::scoped_timed_lock scoped_timed_lock; + + private: + struct cv_state { }; + void do_lock() { } + bool do_trylock() { return true; } + bool do_timedlock(xtime const &) { return true; } + void do_unlock() { } + void do_lock(cv_state &) { } + void do_unlock(cv_state &) { } + }; + } // namespace boost // Change Log: