mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-30 17:14:25 +02:00
Don't use removed boost::asio::spawn() overload if Boost >= v1.87
This commit is contained in:
parent
0662f2b719
commit
fb2b2e2d5b
@ -16,11 +16,16 @@
|
|||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
#include <boost/context/fixedsize_stack.hpp>
|
||||||
#include <boost/exception/all.hpp>
|
#include <boost/exception/all.hpp>
|
||||||
#include <boost/asio/deadline_timer.hpp>
|
#include <boost/asio/deadline_timer.hpp>
|
||||||
#include <boost/asio/io_context.hpp>
|
#include <boost/asio/io_context.hpp>
|
||||||
#include <boost/asio/spawn.hpp>
|
#include <boost/asio/spawn.hpp>
|
||||||
|
|
||||||
|
#if BOOST_VERSION >= 108700
|
||||||
|
# include <boost/asio/detached.hpp>
|
||||||
|
#endif // BOOST_VERSION >= 108700
|
||||||
|
|
||||||
namespace icinga
|
namespace icinga
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -102,6 +107,10 @@ public:
|
|||||||
static void SpawnCoroutine(Handler& h, Function f) {
|
static void SpawnCoroutine(Handler& h, Function f) {
|
||||||
|
|
||||||
boost::asio::spawn(h,
|
boost::asio::spawn(h,
|
||||||
|
#if BOOST_VERSION >= 108700
|
||||||
|
std::allocator_arg,
|
||||||
|
boost::context::fixedsize_stack(GetCoroutineStackSize()),
|
||||||
|
#endif // BOOST_VERSION >= 108700
|
||||||
[f](boost::asio::yield_context yc) {
|
[f](boost::asio::yield_context yc) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -119,7 +128,11 @@ public:
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
#if BOOST_VERSION >= 108700
|
||||||
|
boost::asio::detached
|
||||||
|
#else // BOOST_VERSION >= 108700
|
||||||
boost::coroutines::attributes(GetCoroutineStackSize()) // Set a pre-defined stack size.
|
boost::coroutines::attributes(GetCoroutineStackSize()) // Set a pre-defined stack size.
|
||||||
|
#endif // BOOST_VERSION >= 108700
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ BOOST_AUTO_TEST_CASE(timeout_run)
|
|||||||
boost::asio::io_context::strand strand (io);
|
boost::asio::io_context::strand strand (io);
|
||||||
int called = 0;
|
int called = 0;
|
||||||
|
|
||||||
boost::asio::spawn(strand, [&](boost::asio::yield_context yc) {
|
IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) {
|
||||||
boost::asio::deadline_timer timer (io);
|
boost::asio::deadline_timer timer (io);
|
||||||
|
|
||||||
Timeout timeout (strand, boost::posix_time::millisec(300), [&called] { ++called; });
|
Timeout timeout (strand, boost::posix_time::millisec(300), [&called] { ++called; });
|
||||||
@ -44,7 +44,7 @@ BOOST_AUTO_TEST_CASE(timeout_cancelled)
|
|||||||
boost::asio::io_context::strand strand (io);
|
boost::asio::io_context::strand strand (io);
|
||||||
int called = 0;
|
int called = 0;
|
||||||
|
|
||||||
boost::asio::spawn(strand, [&](boost::asio::yield_context yc) {
|
IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) {
|
||||||
boost::asio::deadline_timer timer (io);
|
boost::asio::deadline_timer timer (io);
|
||||||
Timeout timeout (strand, boost::posix_time::millisec(300), [&called] { ++called; });
|
Timeout timeout (strand, boost::posix_time::millisec(300), [&called] { ++called; });
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ BOOST_AUTO_TEST_CASE(timeout_scope)
|
|||||||
boost::asio::io_context::strand strand (io);
|
boost::asio::io_context::strand strand (io);
|
||||||
int called = 0;
|
int called = 0;
|
||||||
|
|
||||||
boost::asio::spawn(strand, [&](boost::asio::yield_context yc) {
|
IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) {
|
||||||
boost::asio::deadline_timer timer (io);
|
boost::asio::deadline_timer timer (io);
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -100,7 +100,7 @@ BOOST_AUTO_TEST_CASE(timeout_due_cancelled)
|
|||||||
boost::asio::io_context::strand strand (io);
|
boost::asio::io_context::strand strand (io);
|
||||||
int called = 0;
|
int called = 0;
|
||||||
|
|
||||||
boost::asio::spawn(strand, [&](boost::asio::yield_context yc) {
|
IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) {
|
||||||
boost::asio::deadline_timer timer (io);
|
boost::asio::deadline_timer timer (io);
|
||||||
Timeout timeout (strand, boost::posix_time::millisec(300), [&called] { ++called; });
|
Timeout timeout (strand, boost::posix_time::millisec(300), [&called] { ++called; });
|
||||||
|
|
||||||
@ -131,7 +131,7 @@ BOOST_AUTO_TEST_CASE(timeout_due_scope)
|
|||||||
boost::asio::io_context::strand strand (io);
|
boost::asio::io_context::strand strand (io);
|
||||||
int called = 0;
|
int called = 0;
|
||||||
|
|
||||||
boost::asio::spawn(strand, [&](boost::asio::yield_context yc) {
|
IoEngine::SpawnCoroutine(strand, [&](boost::asio::yield_context yc) {
|
||||||
boost::asio::deadline_timer timer (io);
|
boost::asio::deadline_timer timer (io);
|
||||||
|
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user