<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/af7177a0cf9d0e57066b7664f6b0131d3ceaf460">https://github.com/macports/macports-ports/commit/af7177a0cf9d0e57066b7664f6b0131d3ceaf460</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new af7177a0cf9 mame: patch 0.226 for asio breaking API change
</span>af7177a0cf9 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit af7177a0cf9d0e57066b7664f6b0131d3ceaf460
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Tue Apr 18 15:48:27 2023 -0400

<span style='display:block; white-space:pre;color:#404040;'>    mame: patch 0.226 for asio breaking API change
</span>---
 emulators/mame/Portfile                            |  8 +++-
 .../files/mame-patch-0226-asio-server_ws_impl.diff | 48 ++++++++++++++++++++++
 2 files changed, 54 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/emulators/mame/Portfile b/emulators/mame/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index c9e15308b21..6ce394d43c5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/emulators/mame/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/emulators/mame/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -108,8 +108,12 @@ if {${g_mame_latest}} {
</span>     patchfiles-append \
                     mame-patch-0226-src-posixfile-build-error.diff
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums       \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    rmd160  b9e4ae321b7673790d374c63bbe966d1502d6738 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Mame 0.226: Fix build issue due to breaking asio API change.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Latest Mame releases already updated; only an issue with older versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    mame-patch-0226-asio-server_ws_impl.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums       rmd160  b9e4ae321b7673790d374c63bbe966d1502d6738 \
</span>                     sha256  7c4c9ec232ba988e65fd29665c9b8e40b5ac3aa9f561eeb107cebbf08ba94baf \
                     size    196379874
 }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/emulators/mame/files/mame-patch-0226-asio-server_ws_impl.diff b/emulators/mame/files/mame-patch-0226-asio-server_ws_impl.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..2b7e98ed24c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/emulators/mame/files/mame-patch-0226-asio-server_ws_impl.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,48 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/lib/util/server_ws_impl.hpp.orig   2020-10-27 02:11:42.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/lib/util/server_ws_impl.hpp        2023-03-09 20:00:24.000000000 -0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9,6 +9,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "asio.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <asio/system_timer.hpp>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// ### Newish asio API get_io_service is now MIA. ###
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NEW_ASIO_API 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef NEW_ASIO_API 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define GET_IO_SERVICE(s) ((asio::io_context&)(s).get_executor().context())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define GET_IO_SERVICE(s) ((s).get_io_service())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "server_ws.hpp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <unordered_map>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <thread>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -74,10 +82,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   virtual ~Connection() {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  explicit Connection(const std::shared_ptr<socket_type> &socket) : super(0), socket(socket), strand(socket->get_io_service()), closed(false) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  explicit Connection(const std::shared_ptr<socket_type> &socket) : super(0), socket(socket), strand(GET_IO_SERVICE(*socket)), closed(false) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  explicit Connection(socket_type *socket): super(0), socket(socket), strand(socket->get_io_service()), closed(false) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  explicit Connection(socket_type *socket): super(0), socket(socket), strand(GET_IO_SERVICE(*socket)), closed(false) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   class SendData {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -361,7 +369,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           std::shared_ptr<asio::system_timer> get_timeout_timer(const std::shared_ptr<Connection> &connection, size_t seconds) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if (seconds == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           return nullptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  auto timer = std::make_shared<asio::system_timer>(connection->socket->get_io_service());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  auto timer = std::make_shared<asio::system_timer>(GET_IO_SERVICE(*(connection->socket)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   timer->expires_at(std::chrono::system_clock::now() + std::chrono::seconds(static_cast<long>(seconds)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   timer->async_wait([connection](const std::error_code& ec){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           if(!ec) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -652,7 +660,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           void timer_idle_init(const std::shared_ptr<Connection> &connection) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if(config.timeout_idle>0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          connection->timer_idle= std::make_unique<asio::system_timer>(connection->socket->get_io_service());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          connection->timer_idle= std::make_unique<asio::system_timer>(GET_IO_SERVICE(*(connection->socket)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           connection->timer_idle->expires_from_now(std::chrono::seconds(static_cast<unsigned long>(config.timeout_idle)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           timer_idle_expired_function(connection);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span></pre><pre style='margin:0'>

</pre>