diff -r 000000000000 -r e4d67989cc36 ossrv_pub/boost_apis/boost/thread/thread.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ossrv_pub/boost_apis/boost/thread/thread.hpp Tue Feb 02 02:01:42 2010 +0200 @@ -0,0 +1,89 @@ +// Copyright (C) 2001-2003 +// William E. Kempf +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#ifndef BOOST_THREAD_WEK070601_HPP +#define BOOST_THREAD_WEK070601_HPP + +#include + +#include +#include +#include +#include +#include + +#if defined(BOOST_HAS_PTHREADS) +# include +# include +#elif defined(BOOST_HAS_MPTASKS) +# include +#endif + +namespace boost { + +struct xtime; +// disable warnings about non dll import +// see: http://www.boost.org/more/separate_compilation.html#dlls +#ifdef BOOST_MSVC +# pragma warning(push) +# pragma warning(disable: 4251 4231 4660 4275) +#endif +class BOOST_THREAD_DECL thread : private noncopyable +{ +public: + thread(); + explicit thread(const function0& threadfunc); + ~thread(); + + bool operator==(const thread& other) const; + bool operator!=(const thread& other) const; + + void join(); + + static void sleep(const xtime& xt); + static void yield(); + +private: +#if defined(BOOST_HAS_WINTHREADS) + void* m_thread; + unsigned int m_id; +#elif defined(BOOST_HAS_PTHREADS) +private: + pthread_t m_thread; +#elif defined(BOOST_HAS_MPTASKS) + MPQueueID m_pJoinQueueID; + MPTaskID m_pTaskID; +#endif + bool m_joinable; +}; + +class BOOST_THREAD_DECL thread_group : private noncopyable +{ +public: + thread_group(); + ~thread_group(); + + thread* create_thread(const function0& threadfunc); + void add_thread(thread* thrd); + void remove_thread(thread* thrd); + void join_all(); + int size(); + +private: + std::list m_threads; + mutex m_mutex; +}; +#ifdef BOOST_MSVC +# pragma warning(pop) +#endif +} // namespace boost + +// Change Log: +// 8 Feb 01 WEKEMPF Initial version. +// 1 Jun 01 WEKEMPF Added boost::thread initial implementation. +// 3 Jul 01 WEKEMPF Redesigned boost::thread to be noncopyable. + +#endif // BOOST_THREAD_WEK070601_HPP