Index: boost/thread/detail/thread.hpp =================================================================== --- boost/thread/detail/thread.hpp (revision 84007) +++ boost/thread/detail/thread.hpp (working copy) @@ -157,7 +157,7 @@ #endif } - class BOOST_THREAD_DECL thread + class thread { public: typedef thread_attributes attributes; @@ -167,13 +167,13 @@ struct dummy; - void release_handle(); + BOOST_THREAD_DECL void release_handle(); detail::thread_data_ptr thread_info; private: - bool start_thread_noexcept(); - bool start_thread_noexcept(const attributes& attr); + BOOST_THREAD_DECL bool start_thread_noexcept(); + BOOST_THREAD_DECL bool start_thread_noexcept(const attributes& attr); public: void start_thread() { @@ -190,9 +190,9 @@ } } - explicit thread(detail::thread_data_ptr data); + BOOST_THREAD_DECL explicit thread(detail::thread_data_ptr data); - detail::thread_data_ptr get_thread_info BOOST_PREVENT_MACRO_SUBSTITUTION () const; + BOOST_THREAD_DECL detail::thread_data_ptr get_thread_info BOOST_PREVENT_MACRO_SUBSTITUTION () const; #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES #if defined(BOOST_THREAD_PROVIDES_VARIADIC_THREAD) @@ -243,7 +243,7 @@ thread(const volatile thread&); #endif #endif - thread() BOOST_NOEXCEPT; + BOOST_THREAD_DECL thread() BOOST_NOEXCEPT; ~thread() { @@ -459,9 +459,9 @@ #endif - bool joinable() const BOOST_NOEXCEPT; + BOOST_THREAD_DECL bool joinable() const BOOST_NOEXCEPT; private: - bool join_noexcept(); + BOOST_THREAD_DECL bool join_noexcept(); public: inline void join(); @@ -494,10 +494,10 @@ #endif #if defined(BOOST_THREAD_PLATFORM_WIN32) private: - bool do_try_join_until_noexcept(uintmax_t milli, bool& res); + BOOST_THREAD_DECL bool do_try_join_until_noexcept(uintmax_t milli, bool& res); inline bool do_try_join_until(uintmax_t milli); public: - bool timed_join(const system_time& abs_time); + BOOST_THREAD_DECL bool timed_join(const system_time& abs_time); //{ // return do_try_join_until(get_milliseconds_until(wait_until)); //} @@ -543,13 +543,13 @@ return timed_join(get_system_time()+rel_time); } #endif - void detach(); + BOOST_THREAD_DECL void detach(); - static unsigned hardware_concurrency() BOOST_NOEXCEPT; + BOOST_THREAD_DECL static unsigned hardware_concurrency() BOOST_NOEXCEPT; #define BOOST_THREAD_DEFINES_THREAD_NATIVE_HANDLE typedef detail::thread_data_base::native_handle_type native_handle_type; - native_handle_type native_handle(); + BOOST_THREAD_DECL native_handle_type native_handle(); #if defined BOOST_THREAD_PROVIDES_THREAD_EQ // Use thread::id when comparisions are needed @@ -571,8 +571,8 @@ #if defined BOOST_THREAD_PROVIDES_INTERRUPTIONS // extensions - void interrupt(); - bool interruption_requested() const BOOST_NOEXCEPT; + BOOST_THREAD_DECL void interrupt(); + BOOST_THREAD_DECL bool interruption_requested() const BOOST_NOEXCEPT; #endif }; @@ -595,7 +595,7 @@ #ifdef BOOST_THREAD_PLATFORM_PTHREAD inline thread::id get_id() BOOST_NOEXCEPT; #else - thread::id BOOST_THREAD_DECL get_id() BOOST_NOEXCEPT; + BOOST_THREAD_DECL thread::id BOOST_THREAD_DECL get_id() BOOST_NOEXCEPT; #endif #if defined BOOST_THREAD_PROVIDES_INTERRUPTIONS Index: libs/thread/src/win32/thread.cpp =================================================================== --- libs/thread/src/win32/thread.cpp (revision 84007) +++ libs/thread/src/win32/thread.cpp (working copy) @@ -230,10 +230,10 @@ } } - thread::thread() BOOST_NOEXCEPT + BOOST_THREAD_DECL thread::thread() BOOST_NOEXCEPT {} - bool thread::start_thread_noexcept() + BOOST_THREAD_DECL bool thread::start_thread_noexcept() { uintptr_t const new_thread=_beginthreadex(0,0,&thread_start_function,thread_info.get(),CREATE_SUSPENDED,&thread_info->id); if(!new_thread) @@ -247,7 +247,7 @@ return true; } - bool thread::start_thread_noexcept(const attributes& attr) + BOOST_THREAD_DECL bool thread::start_thread_noexcept(const attributes& attr) { //uintptr_t const new_thread=_beginthreadex(attr.get_security(),attr.get_stack_size(),&thread_start_function,thread_info.get(),CREATE_SUSPENDED,&thread_info->id); uintptr_t const new_thread=_beginthreadex(0,static_cast(attr.get_stack_size()),&thread_start_function,thread_info.get(),CREATE_SUSPENDED,&thread_info->id); @@ -262,7 +262,7 @@ return true; } - thread::thread(detail::thread_data_ptr data): + BOOST_THREAD_DECL thread::thread(detail::thread_data_ptr data): thread_info(data) {} @@ -317,7 +317,7 @@ } - thread::id thread::get_id() const BOOST_NOEXCEPT + BOOST_THREAD_DECL thread::id thread::get_id() const BOOST_NOEXCEPT { #if defined BOOST_THREAD_PROVIDES_BASIC_THREAD_ID detail::thread_data_ptr local_thread_info=(get_thread_info)(); @@ -328,11 +328,11 @@ #endif } - bool thread::joinable() const BOOST_NOEXCEPT + BOOST_THREAD_DECL bool thread::joinable() const BOOST_NOEXCEPT { return (get_thread_info)() ? true : false; } - bool thread::join_noexcept() + BOOST_THREAD_DECL bool thread::join_noexcept() { detail::thread_data_ptr local_thread_info=(get_thread_info)(); @@ -349,12 +349,12 @@ } #if defined BOOST_THREAD_USES_DATETIME - bool thread::timed_join(boost::system_time const& wait_until) + BOOST_THREAD_DECL bool thread::timed_join(boost::system_time const& wait_until) { return do_try_join_until(get_milliseconds_until(wait_until)); } #endif - bool thread::do_try_join_until_noexcept(uintmax_t milli, bool& res) + BOOST_THREAD_DECL bool thread::do_try_join_until_noexcept(uintmax_t milli, bool& res) { detail::thread_data_ptr local_thread_info=(get_thread_info)(); if(local_thread_info) @@ -385,7 +385,7 @@ } #if defined BOOST_THREAD_PROVIDES_INTERRUPTIONS - void thread::interrupt() + BOOST_THREAD_DECL void thread::interrupt() { detail::thread_data_ptr local_thread_info=(get_thread_info)(); if(local_thread_info) @@ -394,13 +394,13 @@ } } - bool thread::interruption_requested() const BOOST_NOEXCEPT + BOOST_THREAD_DECL bool thread::interruption_requested() const BOOST_NOEXCEPT { detail::thread_data_ptr local_thread_info=(get_thread_info)(); return local_thread_info.get() && (detail::win32::WaitForSingleObject(local_thread_info->interruption_handle,0)==0); } - unsigned thread::hardware_concurrency() BOOST_NOEXCEPT + BOOST_THREAD_DECL unsigned thread::hardware_concurrency() BOOST_NOEXCEPT { //SYSTEM_INFO info={{0}}; SYSTEM_INFO info; @@ -409,13 +409,13 @@ } #endif - thread::native_handle_type thread::native_handle() + BOOST_THREAD_DECL thread::native_handle_type thread::native_handle() { detail::thread_data_ptr local_thread_info=(get_thread_info)(); return local_thread_info?(detail::win32::handle)local_thread_info->thread_handle:detail::win32::invalid_handle_value; } - detail::thread_data_ptr thread::get_thread_info BOOST_PREVENT_MACRO_SUBSTITUTION () const + BOOST_THREAD_DECL detail::thread_data_ptr thread::get_thread_info BOOST_PREVENT_MACRO_SUBSTITUTION () const { return thread_info; }