summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2014-10-19 20:22:58 (GMT)
committerTobias Markmann <tm@ayena.de>2014-10-20 13:49:33 (GMT)
commit6b22dfcf59474dd016a0355a3102a1dd3692d92c (patch)
tree2b1fd33be433a91e81fee84fdc2bf1b52575d934 /3rdParty/Boost/src/boost/smart_ptr/detail/yield_k.hpp
parent38b0cb785fea8eae5e48fae56440695fdfd10ee1 (diff)
downloadswift-6b22dfcf59474dd016a0355a3102a1dd3692d92c.zip
swift-6b22dfcf59474dd016a0355a3102a1dd3692d92c.tar.bz2
Update Boost in 3rdParty to version 1.56.0.
This updates Boost in our 3rdParty directory to version 1.56.0. Updated our update.sh script to stop on error. Changed error reporting in SwiftTools/CrashReporter.cpp to SWIFT_LOG due to missing include of <iostream> with newer Boost. Change-Id: I4b35c77de951333979a524097f35f5f83d325edc
Diffstat (limited to '3rdParty/Boost/src/boost/smart_ptr/detail/yield_k.hpp')
-rw-r--r--3rdParty/Boost/src/boost/smart_ptr/detail/yield_k.hpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/3rdParty/Boost/src/boost/smart_ptr/detail/yield_k.hpp b/3rdParty/Boost/src/boost/smart_ptr/detail/yield_k.hpp
index 23eadd8..9f4496b 100644
--- a/3rdParty/Boost/src/boost/smart_ptr/detail/yield_k.hpp
+++ b/3rdParty/Boost/src/boost/smart_ptr/detail/yield_k.hpp
@@ -11,6 +11,7 @@
// yield_k.hpp
//
// Copyright (c) 2008 Peter Dimov
+// Copyright (c) Microsoft Corporation 2014
//
// void yield( unsigned k );
//
@@ -24,13 +25,17 @@
//
#include <boost/config.hpp>
+#include <boost/predef.h>
+
+#if BOOST_PLAT_WINDOWS_RUNTIME
+#include <thread>
+#endif
// BOOST_SMT_PAUSE
#if defined(_MSC_VER) && _MSC_VER >= 1310 && ( defined(_M_IX86) || defined(_M_X64) )
extern "C" void _mm_pause();
-#pragma intrinsic( _mm_pause )
#define BOOST_SMT_PAUSE _mm_pause();
@@ -54,7 +59,7 @@ namespace boost
namespace detail
{
-#if !defined( BOOST_USE_WINDOWS_H )
+#if !defined( BOOST_USE_WINDOWS_H ) && !BOOST_PLAT_WINDOWS_RUNTIME
extern "C" void __stdcall Sleep( unsigned long ms );
#endif
@@ -69,6 +74,7 @@ inline void yield( unsigned k )
BOOST_SMT_PAUSE
}
#endif
+#if !BOOST_PLAT_WINDOWS_RUNTIME
else if( k < 32 )
{
Sleep( 0 );
@@ -77,6 +83,13 @@ inline void yield( unsigned k )
{
Sleep( 1 );
}
+#else
+ else
+ {
+ // Sleep isn't supported on the Windows Runtime.
+ std::this_thread::yield();
+ }
+#endif
}
} // namespace detail