Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / beast / example / http / server / stackless-ssl / http_server_stackless_ssl.cpp
index 06c0e36..7786cbb 100644 (file)
@@ -20,6 +20,7 @@
 #include <boost/beast/ssl.hpp>
 #include <boost/beast/version.hpp>
 #include <boost/asio/coroutine.hpp>
+#include <boost/asio/dispatch.hpp>
 #include <boost/asio/strand.hpp>
 #include <boost/config.hpp>
 #include <algorithm>
@@ -304,7 +305,16 @@ public:
     void
     run()
     {
-        loop({}, 0, false);
+        // We need to be executing within a strand to perform async operations
+        // on the I/O objects in this session.Although not strictly necessary
+        // for single-threaded contexts, this example code is written to be
+        // thread-safe by default.
+        net::dispatch(stream_.get_executor(),
+                      beast::bind_front_handler(&session::loop,
+                                                shared_from_this(),
+                                                beast::error_code{},
+                                                0,
+                                                false));
     }
 
     #include <boost/asio/yield.hpp>