Add ifdef to allow asio's threading support to be independently disabled.
diff --git a/asio/include/asio/detail/event.hpp b/asio/include/asio/detail/event.hpp
index e5e272a..65aa4cb 100644
--- a/asio/include/asio/detail/event.hpp
+++ b/asio/include/asio/detail/event.hpp
@@ -21,7 +21,7 @@
 #include <boost/config.hpp>
 #include "asio/detail/pop_options.hpp"
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 # include "asio/detail/null_event.hpp"
 #elif defined(BOOST_WINDOWS)
 # include "asio/detail/win_event.hpp"
@@ -34,7 +34,7 @@
 namespace asio {
 namespace detail {
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 typedef null_event event;
 #elif defined(BOOST_WINDOWS)
 typedef win_event event;
diff --git a/asio/include/asio/detail/fenced_block.hpp b/asio/include/asio/detail/fenced_block.hpp
index 7edc204..6b88b72 100644
--- a/asio/include/asio/detail/fenced_block.hpp
+++ b/asio/include/asio/detail/fenced_block.hpp
@@ -21,7 +21,7 @@
 #include <boost/config.hpp>
 #include "asio/detail/pop_options.hpp"
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 # include "asio/detail/null_fenced_block.hpp"
 #elif defined(__MACH__) && defined(__APPLE__)
 # include "asio/detail/macos_fenced_block.hpp"
@@ -41,7 +41,7 @@
 namespace asio {
 namespace detail {
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 typedef null_fenced_block fenced_block;
 #elif defined(__MACH__) && defined(__APPLE__)
 typedef macos_fenced_block fenced_block;
diff --git a/asio/include/asio/detail/mutex.hpp b/asio/include/asio/detail/mutex.hpp
index 04c9cd6..024ec7f 100644
--- a/asio/include/asio/detail/mutex.hpp
+++ b/asio/include/asio/detail/mutex.hpp
@@ -21,7 +21,7 @@
 #include <boost/config.hpp>
 #include "asio/detail/pop_options.hpp"
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 # include "asio/detail/null_mutex.hpp"
 #elif defined(BOOST_WINDOWS)
 # include "asio/detail/win_mutex.hpp"
@@ -34,7 +34,7 @@
 namespace asio {
 namespace detail {
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 typedef null_mutex mutex;
 #elif defined(BOOST_WINDOWS)
 typedef win_mutex mutex;
diff --git a/asio/include/asio/detail/null_event.hpp b/asio/include/asio/detail/null_event.hpp
index fe30604..bcea31b 100644
--- a/asio/include/asio/detail/null_event.hpp
+++ b/asio/include/asio/detail/null_event.hpp
@@ -21,7 +21,7 @@
 #include <boost/config.hpp>
 #include "asio/detail/pop_options.hpp"
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 
 #include "asio/detail/noncopyable.hpp"
 
@@ -70,7 +70,7 @@
 } // namespace detail
 } // namespace asio
 
-#endif // !defined(BOOST_HAS_THREADS)
+#endif // !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 
 #include "asio/detail/pop_options.hpp"
 
diff --git a/asio/include/asio/detail/null_mutex.hpp b/asio/include/asio/detail/null_mutex.hpp
index fc1dce8..6661ef8 100644
--- a/asio/include/asio/detail/null_mutex.hpp
+++ b/asio/include/asio/detail/null_mutex.hpp
@@ -21,7 +21,7 @@
 #include <boost/config.hpp>
 #include "asio/detail/pop_options.hpp"
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 
 #include "asio/detail/noncopyable.hpp"
 #include "asio/detail/scoped_lock.hpp"
@@ -59,7 +59,7 @@
 } // namespace detail
 } // namespace asio
 
-#endif // !defined(BOOST_HAS_THREADS)
+#endif // !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 
 #include "asio/detail/pop_options.hpp"
 
diff --git a/asio/include/asio/detail/null_signal_blocker.hpp b/asio/include/asio/detail/null_signal_blocker.hpp
index 7a8e47e..a5db315 100644
--- a/asio/include/asio/detail/null_signal_blocker.hpp
+++ b/asio/include/asio/detail/null_signal_blocker.hpp
@@ -21,7 +21,7 @@
 #include <boost/config.hpp>
 #include "asio/detail/pop_options.hpp"
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 
 #include "asio/detail/noncopyable.hpp"
 
@@ -56,7 +56,7 @@
 } // namespace detail
 } // namespace asio
 
-#endif // !defined(BOOST_HAS_THREADS)
+#endif // !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 
 #include "asio/detail/pop_options.hpp"
 
diff --git a/asio/include/asio/detail/null_thread.hpp b/asio/include/asio/detail/null_thread.hpp
index f27c9ad..d96883f 100644
--- a/asio/include/asio/detail/null_thread.hpp
+++ b/asio/include/asio/detail/null_thread.hpp
@@ -21,7 +21,7 @@
 #include <boost/config.hpp>
 #include "asio/detail/pop_options.hpp"
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 
 #include "asio/detail/push_options.hpp"
 #include <boost/throw_exception.hpp>
@@ -61,7 +61,7 @@
 } // namespace detail
 } // namespace asio
 
-#endif // !defined(BOOST_HAS_THREADS)
+#endif // !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 
 #include "asio/detail/pop_options.hpp"
 
diff --git a/asio/include/asio/detail/null_tss_ptr.hpp b/asio/include/asio/detail/null_tss_ptr.hpp
index 689a149..112b476 100644
--- a/asio/include/asio/detail/null_tss_ptr.hpp
+++ b/asio/include/asio/detail/null_tss_ptr.hpp
@@ -21,7 +21,7 @@
 #include <boost/config.hpp>
 #include "asio/detail/pop_options.hpp"
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 
 #include "asio/detail/noncopyable.hpp"
 
@@ -63,7 +63,7 @@
 } // namespace detail
 } // namespace asio
 
-#endif // !defined(BOOST_HAS_THREADS)
+#endif // !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 
 #include "asio/detail/pop_options.hpp"
 
diff --git a/asio/include/asio/detail/signal_blocker.hpp b/asio/include/asio/detail/signal_blocker.hpp
index 1ee1968..52f70c8 100644
--- a/asio/include/asio/detail/signal_blocker.hpp
+++ b/asio/include/asio/detail/signal_blocker.hpp
@@ -21,7 +21,7 @@
 #include <boost/config.hpp>
 #include "asio/detail/pop_options.hpp"
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 # include "asio/detail/null_signal_blocker.hpp"
 #elif defined(BOOST_WINDOWS) || defined(__CYGWIN__)
 # include "asio/detail/win_signal_blocker.hpp"
@@ -34,7 +34,7 @@
 namespace asio {
 namespace detail {
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 typedef null_signal_blocker signal_blocker;
 #elif defined(BOOST_WINDOWS) || defined(__CYGWIN__)
 typedef win_signal_blocker signal_blocker;
diff --git a/asio/include/asio/detail/thread.hpp b/asio/include/asio/detail/thread.hpp
index 5d6fb6e..3c9280b 100644
--- a/asio/include/asio/detail/thread.hpp
+++ b/asio/include/asio/detail/thread.hpp
@@ -21,7 +21,7 @@
 #include <boost/config.hpp>
 #include "asio/detail/pop_options.hpp"
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 # include "asio/detail/null_thread.hpp"
 #elif defined(BOOST_WINDOWS)
 # if defined(UNDER_CE)
@@ -38,7 +38,7 @@
 namespace asio {
 namespace detail {
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 typedef null_thread thread;
 #elif defined(BOOST_WINDOWS)
 # if defined(UNDER_CE)
diff --git a/asio/include/asio/detail/tss_ptr.hpp b/asio/include/asio/detail/tss_ptr.hpp
index 9c06671..ac67d9f 100644
--- a/asio/include/asio/detail/tss_ptr.hpp
+++ b/asio/include/asio/detail/tss_ptr.hpp
@@ -21,7 +21,7 @@
 #include <boost/config.hpp>
 #include "asio/detail/pop_options.hpp"
 
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
 # include "asio/detail/null_tss_ptr.hpp"
 #elif defined(BOOST_WINDOWS)
 # include "asio/detail/win_tss_ptr.hpp"
@@ -36,7 +36,7 @@
 
 template <typename T>
 class tss_ptr
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
   : public null_tss_ptr<T>
 #elif defined(BOOST_WINDOWS)
   : public win_tss_ptr<T>
@@ -47,7 +47,7 @@
 public:
   void operator=(T* value)
   {
-#if !defined(BOOST_HAS_THREADS)
+#if !defined(BOOST_HAS_THREADS) || defined(ASIO_DISABLE_THREADS)
     null_tss_ptr<T>::operator=(value);
 #elif defined(BOOST_WINDOWS)
     win_tss_ptr<T>::operator=(value);