summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--3rdparty/asio/include/asio/detail/win_iocp_socket_accept_op.hpp2
-rw-r--r--src/emu/http.cpp2
-rw-r--r--src/lib/util/server_ws_impl.hpp10
3 files changed, 7 insertions, 7 deletions
diff --git a/3rdparty/asio/include/asio/detail/win_iocp_socket_accept_op.hpp b/3rdparty/asio/include/asio/detail/win_iocp_socket_accept_op.hpp
index fe54da43840..c25cb172484 100644
--- a/3rdparty/asio/include/asio/detail/win_iocp_socket_accept_op.hpp
+++ b/3rdparty/asio/include/asio/detail/win_iocp_socket_accept_op.hpp
@@ -53,8 +53,8 @@ public:
protocol_(protocol),
peer_endpoint_(peer_endpoint),
enable_connection_aborted_(enable_connection_aborted),
- cancel_requested_(0),
proxy_op_(0),
+ cancel_requested_(0),
handler_(ASIO_MOVE_CAST(Handler)(handler)),
work_(handler_, io_ex)
{
diff --git a/src/emu/http.cpp b/src/emu/http.cpp
index 42d8120d32e..f36244e31ac 100644
--- a/src/emu/http.cpp
+++ b/src/emu/http.cpp
@@ -331,7 +331,7 @@ http_manager::http_manager(bool active, short port, const char *root)
};
m_server->on_upgrade = [this](auto socket, auto request) {
- auto connection = std::make_shared<webpp::ws_server::Connection>(socket);
+ auto connection = std::make_shared<webpp::ws_server::Connection>(*m_io_context, socket);
connection->method = std::move(request->method);
connection->path = std::move(request->path);
connection->http_version = std::move(request->http_version);
diff --git a/src/lib/util/server_ws_impl.hpp b/src/lib/util/server_ws_impl.hpp
index dab73b63a67..c1ba9f1a392 100644
--- a/src/lib/util/server_ws_impl.hpp
+++ b/src/lib/util/server_ws_impl.hpp
@@ -74,10 +74,10 @@ namespace webpp {
public:
virtual ~Connection() {}
- explicit Connection(const std::shared_ptr<socket_type> &socket) : super(0), socket(socket), strand(socket->get_io_service()), closed(false) { }
+ Connection(asio::io_context &context, const std::shared_ptr<socket_type> &socket) : super(0), socket(socket), strand(context), closed(false) { }
private:
- explicit Connection(socket_type *socket): super(0), socket(socket), strand(socket->get_io_service()), closed(false) { }
+ Connection(asio::io_context &context, socket_type *socket): super(0), socket(socket), strand(context), closed(false) { }
class SendData {
public:
@@ -361,7 +361,7 @@ namespace webpp {
std::shared_ptr<asio::system_timer> get_timeout_timer(const std::shared_ptr<Connection> &connection, size_t seconds) {
if (seconds == 0)
return nullptr;
- auto timer = std::make_shared<asio::system_timer>(connection->socket->get_io_service());
+ auto timer = std::make_shared<asio::system_timer>(connection->socket->get_executor());
timer->expires_at(std::chrono::system_clock::now() + std::chrono::seconds(static_cast<long>(seconds)));
timer->async_wait([connection](const std::error_code& ec){
if(!ec) {
@@ -652,7 +652,7 @@ namespace webpp {
void timer_idle_init(const std::shared_ptr<Connection> &connection) {
if(config.timeout_idle>0) {
- connection->timer_idle= std::make_unique<asio::system_timer>(connection->socket->get_io_service());
+ connection->timer_idle= std::make_unique<asio::system_timer>(connection->socket->get_executor());
connection->timer_idle->expires_from_now(std::chrono::seconds(static_cast<unsigned long>(config.timeout_idle)));
timer_idle_expired_function(connection);
}
@@ -693,7 +693,7 @@ namespace webpp {
void accept() override {
//Create new socket for this connection (stored in Connection::socket)
//Shared_ptr is used to pass temporary objects to the asynchronous functions
- std::shared_ptr<Connection> connection(new Connection(new WS(*io_context)));
+ std::shared_ptr<Connection> connection(new Connection(*io_context, new WS(*io_context)));
acceptor->async_accept(*connection->socket, [this, connection](const std::error_code& ec) {
//Immediately start accepting a new connection (if io_context hasn't been stopped)