diff options
| author | Remko Tronçon <git@el-tramo.be> | 2010-11-24 20:33:19 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2010-11-24 20:35:17 (GMT) | 
| commit | 332d60c56dfaa11fdd135088279d15cd5983b3d4 (patch) | |
| tree | dd77717a4e1732da929d5ff8a0471fa3f005e201 /3rdParty/Boost/src/boost/thread/detail/thread.hpp | |
| parent | 90c44a10fec26d2a0935b2d62e82b6a5be028373 (diff) | |
| download | swift-contrib-332d60c56dfaa11fdd135088279d15cd5983b3d4.zip swift-contrib-332d60c56dfaa11fdd135088279d15cd5983b3d4.tar.bz2  | |
Upgraded Boost to 1.45.0.
Diffstat (limited to '3rdParty/Boost/src/boost/thread/detail/thread.hpp')
| -rw-r--r-- | 3rdParty/Boost/src/boost/thread/detail/thread.hpp | 43 | 
1 files changed, 36 insertions, 7 deletions
diff --git a/3rdParty/Boost/src/boost/thread/detail/thread.hpp b/3rdParty/Boost/src/boost/thread/detail/thread.hpp index 9615a39..005555e 100644 --- a/3rdParty/Boost/src/boost/thread/detail/thread.hpp +++ b/3rdParty/Boost/src/boost/thread/detail/thread.hpp @@ -3,10 +3,12 @@  // 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) -// (C) Copyright 2007-8 Anthony Williams +// (C) Copyright 2007-10 Anthony Williams  #include <boost/thread/exceptions.hpp> +#ifndef BOOST_NO_IOSTREAM  #include <ostream> +#endif  #include <boost/thread/detail/move.hpp>  #include <boost/thread/mutex.hpp>  #include <boost/thread/xtime.hpp> @@ -113,14 +115,13 @@ namespace boost          void release_handle(); -        mutable boost::mutex thread_info_mutex;          detail::thread_data_ptr thread_info;          void start_thread();          explicit thread(detail::thread_data_ptr data); -        detail::thread_data_ptr get_thread_info() const; +        detail::thread_data_ptr get_thread_info BOOST_PREVENT_MACRO_SUBSTITUTION () const;  #ifndef BOOST_NO_RVALUE_REFERENCES          template<typename F> @@ -147,7 +148,7 @@ namespace boost  #endif          struct dummy;      public: -#ifdef __SUNPRO_CC  +#if BOOST_WORKAROUND(__SUNPRO_CC, < 0x5100)          thread(const volatile thread&);   #endif           thread(); @@ -157,7 +158,7 @@ namespace boost  #ifdef BOOST_MSVC          template <class F>          explicit thread(F f,typename disable_if<boost::is_convertible<F&,detail::thread_move_t<F> >, dummy* >::type=0): -            thread_info(make_thread_info(f)) +            thread_info(make_thread_info(static_cast<F&&>(f)))          {              start_thread();          } @@ -217,7 +218,7 @@ namespace boost              x->thread_info.reset();          } -#ifdef __SUNPRO_CC  +#if BOOST_WORKAROUND(__SUNPRO_CC, < 0x5100)          thread& operator=(thread x)           {               swap(x);  @@ -394,7 +395,7 @@ namespace boost              thread_data(thread_data_)          {}          friend class thread; -        friend id this_thread::get_id(); +        friend id BOOST_THREAD_DECL this_thread::get_id();      public:          id():              thread_data() @@ -430,6 +431,8 @@ namespace boost              return !(thread_data<y.thread_data);          } +#ifndef BOOST_NO_IOSTREAM +#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS          template<class charT, class traits>          friend std::basic_ostream<charT, traits>&           operator<<(std::basic_ostream<charT, traits>& os, const id& x) @@ -443,8 +446,34 @@ namespace boost                  return os<<"{Not-any-thread}";              }          } +#else +        template<class charT, class traits> +        std::basic_ostream<charT, traits>&  +        print(std::basic_ostream<charT, traits>& os) const +        { +            if(thread_data) +            { +                return os<<thread_data; +            } +            else +            { +                return os<<"{Not-any-thread}"; +            } +        } + +#endif +#endif      }; +#if !defined(BOOST_NO_IOSTREAM) && defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS) +    template<class charT, class traits> +    std::basic_ostream<charT, traits>&  +    operator<<(std::basic_ostream<charT, traits>& os, const thread::id& x) +    { +        return x.print(os); +    } +#endif +      inline bool thread::operator==(const thread& other) const      {          return get_id()==other.get_id();  | 
 Swift