summaryrefslogtreecommitdiff
path: root/media-gfx/slic3r/files/boost-io-context-9999.patch
blob: 5d9f1e439520a4409555b18b34cfc1761b8b8929 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
From eff78b92512cfe89675f2efd768ddacb2e93ec62 Mon Sep 17 00:00:00 2001
From: bakedsnake <bakedsnake@vagrantz.xyz>
Date: Mon, 24 Aug 2026 15:59:05 +0200
Subject: [PATCH] Updates deprecated `asio::io_service` with `asio::io_context`

Thought I would leave this here  for  documentation
purposes at least. This  makes  the  latest version
able    to    build.    (    latest    commit    ).
---

--- a/src/libslic3r/GCodeSender.cpp
+++ b/src/libslic3r/GCodeSender.cpp
@@ -35,7 +35,9 @@ struct termios2 {
 	speed_t c_ispeed;
 	speed_t c_ospeed;
 };
+#ifndef BOTHER
 #define BOTHER CBAUDEX
+#endif
 
 #endif
 
@@ -97,12 +99,12 @@ GCodeSender::connect(std::string devname, unsigned int baud_rate)
     fs.open("serial.txt", std::fstream::out | std::fstream::trunc);
 #endif
     
-    // this gives some work to the io_service before it is started
+    // this gives some work to the io_context before it is started
     // (post() runs the supplied function in its thread)
-    this->io.post(boost::bind(&GCodeSender::do_read, this));
+    boost::asio::post(this->io, boost::bind(&GCodeSender::do_read, this));
     
     // start reading in the background thread
-    boost::thread t(boost::bind(&asio::io_service::run, &this->io));
+    boost::thread t(boost::bind(&asio::io_context::run, &this->io));
     this->background_thread.swap(t);
     
     // always send a M105 to check for connection because firmware might be silent on connect 
@@ -159,9 +161,8 @@ GCodeSender::disconnect()
     if (!this->open) return;
     this->open = false;
     this->connected = false;
-    this->io.post(boost::bind(&GCodeSender::do_close, this));
+    boost::asio::post(this->io, boost::bind(&GCodeSender::do_close, this));
     this->background_thread.join();
-    this->io.reset();
     /*
     if (this->error_status()) {
         throw(boost::system::system_error(boost::system::error_code(),
@@ -444,7 +445,7 @@ GCodeSender::send(const std::string &line, bool priority)
 void
 GCodeSender::send()
 {
-    this->io.post(boost::bind(&GCodeSender::do_send, this));
+    boost::asio::post(this->io, boost::bind(&GCodeSender::do_send, this));
 }
 
 void
--- a/src/libslic3r/GCodeSender.hpp
+++ b/src/libslic3r/GCodeSender.hpp
@@ -47,7 +47,7 @@ class GCodeSender : private boost::noncopyable {
     void reset();
     
     private:
-    asio::io_service io;
+    asio::io_context io;
     asio::serial_port serial;
     boost::thread background_thread;
     boost::asio::streambuf read_buffer, write_buffer;

--- a/Build.PL
+++ b/Build.PL
@@ -152,7 +152,7 @@ if (defined $ENV{BOOST_LIBRARYPATH}) {
 # In order to generate the -l switches we need to know how Boost libraries are named
 my $have_boost = 0;
 my $have_boost_optional = 0;
-my @boost_libraries = qw(system thread filesystem);  # we need these
+my @boost_libraries = qw(thread filesystem);  # we need these
 my @boost_optional_libraries = qw(nowide);  # we need these, but if they aren't present we can deal
 # check without explicit lib path (works on Linux)
 if (! $mswin) {