nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 557 lines 22 kB view raw
1From f073c54f9c69108707dc477c890592049fcd95db Mon Sep 17 00:00:00 2001 2From: Hartmut Kaiser <hartmut.kaiser@gmail.com> 3Date: Mon, 30 Jun 2025 09:49:03 -0500 4Subject: [PATCH 1/2] Removing deprecated Asio features 5 6Signed-off-by: Hartmut Kaiser <hartmut.kaiser@gmail.com> 7--- 8 .../iostreams/src/server/output_stream.cpp | 30 ++++-- 9 examples/async_io/async_io_low_level.cpp | 5 + 10 libs/core/asio/include/hpx/asio/asio_util.hpp | 6 ++ 11 libs/core/asio/src/asio_util.cpp | 102 +++++++++++++++++- 12 libs/core/executors/src/service_executors.cpp | 10 +- 13 .../hpx/io_service/io_service_pool.hpp | 4 + 14 libs/core/io_service/src/io_service_pool.cpp | 4 + 15 libs/core/runtime_local/src/pool_timer.cpp | 2 +- 16 .../src/parcelport_gasnet.cpp | 6 ++ 17 .../parcelport_lci/src/parcelport_lci.cpp | 13 ++- 18 .../parcelport_mpi/src/parcelport_mpi.cpp | 6 ++ 19 11 files changed, 168 insertions(+), 20 deletions(-) 20 21diff --git a/components/iostreams/src/server/output_stream.cpp b/components/iostreams/src/server/output_stream.cpp 22index dd0a519b27f8..40f8ee0758a3 100644 23--- a/components/iostreams/src/server/output_stream.cpp 24+++ b/components/iostreams/src/server/output_stream.cpp 25@@ -34,7 +34,7 @@ namespace hpx::iostreams::detail { 26 ar << valid; 27 if (valid) 28 { 29- ar& data_; 30+ ar & data_; 31 } 32 } 33 34@@ -44,7 +44,7 @@ namespace hpx::iostreams::detail { 35 ar >> valid; 36 if (valid) 37 { 38- ar& data_; 39+ ar & data_; 40 } 41 } 42 } // namespace hpx::iostreams::detail 43@@ -53,23 +53,29 @@ namespace hpx::iostreams::server { 44 /////////////////////////////////////////////////////////////////////////// 45 void output_stream::call_write_async(std::uint32_t locality_id, 46 std::uint64_t count, detail::buffer const& in, hpx::id_type /*this_id*/) 47- { // {{{ 48+ { 49 // Perform the IO operation. 50 pending_output_.output(locality_id, count, in, write_f, mtx_); 51- } // }}} 52+ } 53 54 void output_stream::write_async(std::uint32_t locality_id, 55 std::uint64_t count, detail::buffer const& buf_in) 56- { // {{{ 57+ { 58 // Perform the IO in another OS thread. 59 detail::buffer in(buf_in); 60 // we need to capture the GID of the component to keep it alive long 61 // enough. 62 hpx::id_type this_id = this->get_id(); 63+#if ASIO_VERSION >= 103400 64+ asio::post(hpx::get_thread_pool("io_pool")->get_io_service(), 65+ hpx::bind_front(&output_stream::call_write_async, this, locality_id, 66+ count, HPX_MOVE(in), HPX_MOVE(this_id))); 67+#else 68 hpx::get_thread_pool("io_pool")->get_io_service().post( 69 hpx::bind_front(&output_stream::call_write_async, this, locality_id, 70 count, HPX_MOVE(in), HPX_MOVE(this_id))); 71- } // }}} 72+#endif 73+ } 74 75 /////////////////////////////////////////////////////////////////////////// 76 void output_stream::call_write_sync(std::uint32_t locality_id, 77@@ -86,16 +92,22 @@ namespace hpx::iostreams::server { 78 79 void output_stream::write_sync(std::uint32_t locality_id, 80 std::uint64_t count, detail::buffer const& buf_in) 81- { // {{{ 82+ { 83 // Perform the IO in another OS thread. 84 detail::buffer in(buf_in); 85+#if ASIO_VERSION >= 103400 86+ asio::post(hpx::get_thread_pool("io_pool")->get_io_service(), 87+ hpx::bind_front(&output_stream::call_write_sync, this, locality_id, 88+ count, std::ref(in), 89+ threads::thread_id_ref_type(threads::get_outer_self_id()))); 90+#else 91 hpx::get_thread_pool("io_pool")->get_io_service().post( 92 hpx::bind_front(&output_stream::call_write_sync, this, locality_id, 93 count, std::ref(in), 94 threads::thread_id_ref_type(threads::get_outer_self_id()))); 95- 96+#endif 97 // Sleep until the worker thread wakes us up. 98 this_thread::suspend(threads::thread_schedule_state::suspended, 99 "output_stream::write_sync"); 100- } // }}} 101+ } 102 } // namespace hpx::iostreams::server 103diff --git a/examples/async_io/async_io_low_level.cpp b/examples/async_io/async_io_low_level.cpp 104index 75312984bf7f..153e5d124930 100644 105--- a/examples/async_io/async_io_low_level.cpp 106+++ b/examples/async_io/async_io_low_level.cpp 107@@ -39,7 +39,12 @@ hpx::future<int> async_io(char const* string_to_write) 108 hpx::get_runtime().get_thread_pool("io_pool"); 109 110 // ... and schedule the handler to run on one of its OS-threads. 111+#if ASIO_VERSION >= 103400 112+ asio::post( 113+ pool->get_io_service(), hpx::bind(&do_async_io, string_to_write, p)); 114+#else 115 pool->get_io_service().post(hpx::bind(&do_async_io, string_to_write, p)); 116+#endif 117 118 return p->get_future(); 119 } 120diff --git a/libs/core/asio/include/hpx/asio/asio_util.hpp b/libs/core/asio/include/hpx/asio/asio_util.hpp 121index 286536692102..e79bb15c4cb1 100644 122--- a/libs/core/asio/include/hpx/asio/asio_util.hpp 123+++ b/libs/core/asio/include/hpx/asio/asio_util.hpp 124@@ -17,6 +17,7 @@ 125 #endif 126 #include <asio/io_context.hpp> 127 #include <asio/ip/tcp.hpp> 128+#include <asio/version.hpp> 129 130 /* The asio support includes termios.h. 131 * The termios.h file on ppc64le defines these macros, which 132@@ -50,7 +51,12 @@ namespace hpx::util { 133 [[nodiscard]] HPX_CORE_EXPORT std::string cleanup_ip_address( 134 std::string const& addr); 135 136+#if ASIO_VERSION >= 103400 137+ using endpoint_iterator_type = 138+ asio::ip::basic_resolver_iterator<asio::ip::tcp>; 139+#else 140 using endpoint_iterator_type = asio::ip::tcp::resolver::iterator; 141+#endif 142 143 [[nodiscard]] endpoint_iterator_type HPX_CORE_EXPORT connect_begin( 144 std::string const& address, std::uint16_t port, 145diff --git a/libs/core/asio/src/asio_util.cpp b/libs/core/asio/src/asio_util.cpp 146index b5443e5dfa4e..bd248f3345d0 100644 147--- a/libs/core/asio/src/asio_util.cpp 148+++ b/libs/core/asio/src/asio_util.cpp 149@@ -54,8 +54,13 @@ namespace hpx::util { 150 { 151 using namespace asio::ip; 152 std::error_code ec; 153+#if ASIO_VERSION >= 103400 154+ address_v4 const addr4 = //-V821 155+ make_address_v4(addr.c_str(), ec); 156+#else 157 address_v4 const addr4 = //-V821 158 address_v4::from_string(addr.c_str(), ec); 159+#endif 160 if (!ec) 161 { // it's an IPV4 address 162 ep = tcp::endpoint(address(addr4), port); 163@@ -64,8 +69,13 @@ namespace hpx::util { 164 165 if (!force_ipv4) 166 { 167+#if ASIO_VERSION >= 103400 168+ address_v6 const addr6 = //-V821 169+ make_address_v6(addr.c_str(), ec); 170+#else 171 address_v6 const addr6 = //-V821 172 address_v6::from_string(addr.c_str(), ec); 173+#endif 174 if (!ec) 175 { // it's an IPV6 address 176 ep = tcp::endpoint(address(addr6), port); 177@@ -108,8 +118,26 @@ namespace hpx::util { 178 { 179 // resolve the given address 180 tcp::resolver resolver(io_service); 181- tcp::resolver::query query(hostname, std::to_string(port)); 182 183+#if ASIO_VERSION >= 103400 184+ auto resolver_results = resolver.resolve( 185+ asio::ip::tcp::v4(), hostname, std::to_string(port)); 186+ 187+ auto it = resolver_results.begin(); 188+ auto end = resolver_results.begin(); 189+ 190+ // skip ipv6 results, if required 191+ if (it == end && !force_ipv4) 192+ { 193+ resolver_results = resolver.resolve( 194+ asio::ip::tcp::v6(), hostname, std::to_string(port)); 195+ it = resolver_results.begin(); 196+ } 197+ 198+ HPX_ASSERT(it != end); 199+ return *it; 200+#else 201+ tcp::resolver::query query(hostname, std::to_string(port)); 202 asio::ip::tcp::resolver::iterator it = resolver.resolve(query); 203 204 // skip ipv6 results, if required 205@@ -121,9 +149,9 @@ namespace hpx::util { 206 ++it; 207 } 208 } 209- 210 HPX_ASSERT(it != asio::ip::tcp::resolver::iterator()); 211 return *it; 212+#endif 213 } 214 catch (std::system_error const&) 215 { 216@@ -149,8 +177,21 @@ namespace hpx::util { 217 { 218 asio::io_context io_service; 219 tcp::resolver resolver(io_service); 220+ 221+#if ASIO_VERSION >= 103400 222+ auto resolver_results = resolver.resolve( 223+ asio::ip::tcp::v4(), asio::ip::host_name(), ""); 224+ auto it = resolver_results.begin(); 225+ if (it == resolver_results.end()) 226+ { 227+ resolver_results = resolver.resolve( 228+ asio::ip::tcp::v6(), asio::ip::host_name(), ""); 229+ it = resolver_results.begin(); 230+ } 231+#else 232 tcp::resolver::query query(asio::ip::host_name(), ""); 233 tcp::resolver::iterator it = resolver.resolve(query); 234+#endif 235 tcp::endpoint endpoint = *it; 236 return endpoint.address().to_string(); 237 } 238@@ -230,8 +271,14 @@ namespace hpx::util { 239 tcp::endpoint ep; 240 if (util::get_endpoint(address, port, ep)) 241 { 242+#if ASIO_VERSION >= 103400 243+ auto resolver_results = 244+ tcp::resolver::results_type::create(ep, address, port_str); 245+ return resolver_results.begin(); 246+#else 247 return { 248 tcp::resolver::results_type::create(ep, address, port_str)}; 249+#endif 250 } 251 } 252 catch (std::system_error const&) 253@@ -244,10 +291,24 @@ namespace hpx::util { 254 { 255 // resolve the given address 256 tcp::resolver resolver(io_service); 257+ 258+#if ASIO_VERSION >= 103400 259+ auto resolver_results = resolver.resolve(asio::ip::tcp::v4(), 260+ !address.empty() ? address : asio::ip::host_name(), port_str); 261+ auto it = resolver_results.begin(); 262+ if (it == resolver_results.end()) 263+ { 264+ resolver_results = resolver.resolve(asio::ip::tcp::v6(), 265+ !address.empty() ? address : asio::ip::host_name(), 266+ port_str); 267+ it = resolver_results.begin(); 268+ } 269+ return it; 270+#else 271 tcp::resolver::query query( 272 !address.empty() ? address : asio::ip::host_name(), port_str); 273- 274 return {resolver.resolve(query)}; 275+#endif 276 } 277 catch (std::system_error const&) 278 { 279@@ -276,8 +337,14 @@ namespace hpx::util { 280 tcp::endpoint ep; 281 if (util::get_endpoint(address, port, ep)) 282 { 283+#if ASIO_VERSION >= 103400 284+ auto resolver_results = 285+ tcp::resolver::results_type::create(ep, address, port_str); 286+ return resolver_results.begin(); 287+#else 288 return { 289 tcp::resolver::results_type::create(ep, address, port_str)}; 290+#endif 291 } 292 } 293 catch (std::system_error const&) 294@@ -290,9 +357,21 @@ namespace hpx::util { 295 { 296 // resolve the given address 297 tcp::resolver resolver(io_service); 298+#if ASIO_VERSION >= 103400 299+ auto resolver_results = 300+ resolver.resolve(asio::ip::tcp::v4(), address, port_str); 301+ auto it = resolver_results.begin(); 302+ if (it == resolver_results.end()) 303+ { 304+ resolver_results = 305+ resolver.resolve(asio::ip::tcp::v6(), address, port_str); 306+ it = resolver_results.begin(); 307+ } 308+ return it; 309+#else 310 tcp::resolver::query query(address, port_str); 311- 312 return {resolver.resolve(query)}; 313+#endif 314 } 315 catch (std::system_error const&) 316 { 317@@ -306,9 +385,22 @@ namespace hpx::util { 318 { 319 // resolve the given address 320 tcp::resolver resolver(io_service); 321- tcp::resolver::query query(asio::ip::host_name(), port_str); 322 323+#if ASIO_VERSION >= 103400 324+ auto resolver_results = resolver.resolve( 325+ asio::ip::tcp::v4(), asio::ip::host_name(), port_str); 326+ auto it = resolver_results.begin(); 327+ if (it == resolver_results.end()) 328+ { 329+ resolver_results = resolver.resolve( 330+ asio::ip::tcp::v6(), asio::ip::host_name(), port_str); 331+ it = resolver_results.begin(); 332+ } 333+ return it; 334+#else 335+ tcp::resolver::query query(asio::ip::host_name(), port_str); 336 return {resolver.resolve(query)}; 337+#endif 338 } 339 catch (std::system_error const&) 340 { 341diff --git a/libs/core/executors/src/service_executors.cpp b/libs/core/executors/src/service_executors.cpp 342index 4e3ba88a2392..3e39e59ede45 100644 343--- a/libs/core/executors/src/service_executors.cpp 344+++ b/libs/core/executors/src/service_executors.cpp 345@@ -1,4 +1,4 @@ 346-// Copyright (c) 2023 Hartmut Kaiser 347+// Copyright (c) 2023-2025 Hartmut Kaiser 348 // 349 // SPDX-License-Identifier: BSL-1.0 350 // Distributed under the Boost Software License, Version 1.0. (See accompanying 351@@ -10,12 +10,20 @@ 352 #include <hpx/io_service/io_service_pool.hpp> 353 354 #include <asio/io_context.hpp> 355+#include <asio/version.hpp> 356+#if ASIO_VERSION >= 103400 357+#include <asio/post.hpp> 358+#endif 359 360 namespace hpx::parallel::execution::detail { 361 362 void service_executor::post( 363 hpx::util::io_service_pool* pool, hpx::function<void()>&& f) 364 { 365+#if ASIO_VERSION >= 103400 366+ asio::post(pool->get_io_service(), HPX_MOVE(f)); 367+#else 368 pool->get_io_service().post(HPX_MOVE(f)); 369+#endif 370 } 371 } // namespace hpx::parallel::execution::detail 372diff --git a/libs/core/io_service/include/hpx/io_service/io_service_pool.hpp b/libs/core/io_service/include/hpx/io_service/io_service_pool.hpp 373index 8d800f36d18d..8441886b9a1d 100644 374--- a/libs/core/io_service/include/hpx/io_service/io_service_pool.hpp 375+++ b/libs/core/io_service/include/hpx/io_service/io_service_pool.hpp 376@@ -19,6 +19,10 @@ 377 #endif 378 #include <asio/executor_work_guard.hpp> 379 #include <asio/io_context.hpp> 380+#include <asio/version.hpp> 381+#if ASIO_VERSION >= 103400 382+#include <asio/post.hpp> 383+#endif 384 385 // The boost asio support includes termios.h. The termios.h file on ppc64le 386 // defines these macros, which are also used by blaze, blaze_tensor as Template 387diff --git a/libs/core/io_service/src/io_service_pool.cpp b/libs/core/io_service/src/io_service_pool.cpp 388index 44eb3318c04b..ca2fe443e219 100644 389--- a/libs/core/io_service/src/io_service_pool.cpp 390+++ b/libs/core/io_service/src/io_service_pool.cpp 391@@ -259,7 +259,11 @@ namespace hpx::util { 392 for (std::size_t i = 0; i < pool_size_; ++i) 393 { 394 work_.emplace_back(initialize_work(*io_services_[i])); 395+#if ASIO_VERSION >= 103400 396+ io_services_[i]->restart(); 397+#else 398 io_services_[i]->reset(); 399+#endif 400 } 401 402 continue_barrier_->wait(); 403diff --git a/libs/core/runtime_local/src/pool_timer.cpp b/libs/core/runtime_local/src/pool_timer.cpp 404index 7487b5a72692..d2723d2452e8 100644 405--- a/libs/core/runtime_local/src/pool_timer.cpp 406+++ b/libs/core/runtime_local/src/pool_timer.cpp 407@@ -146,7 +146,7 @@ namespace hpx::util::detail { 408 } 409 410 HPX_ASSERT(timer_ != nullptr); 411- timer_->expires_from_now(time_duration.value()); 412+ timer_->expires_at(time_duration.from_now()); 413 timer_->async_wait(hpx::bind_front( //-V779 414 &pool_timer::timer_handler, this->shared_from_this())); 415 416diff --git a/libs/full/parcelport_gasnet/src/parcelport_gasnet.cpp b/libs/full/parcelport_gasnet/src/parcelport_gasnet.cpp 417index 77da0c839b16..16160af101b7 100644 418--- a/libs/full/parcelport_gasnet/src/parcelport_gasnet.cpp 419+++ b/libs/full/parcelport_gasnet/src/parcelport_gasnet.cpp 420@@ -142,8 +142,14 @@ namespace hpx::parcelset { 421 422 for (std::size_t i = 0; i != io_service_pool_.size(); ++i) 423 { 424+#if ASIO_VERSION >= 103400 425+ asio::post( 426+ io_service_pool_.get_io_service(static_cast<int>(i)), 427+ hpx::bind(&parcelport::io_service_work, this)); 428+#else 429 io_service_pool_.get_io_service(int(i)).post( 430 hpx::bind(&parcelport::io_service_work, this)); 431+#endif 432 } 433 return true; 434 } 435diff --git a/libs/full/parcelport_lci/src/parcelport_lci.cpp b/libs/full/parcelport_lci/src/parcelport_lci.cpp 436index d9083191376a..40cf14faba5c 100644 437--- a/libs/full/parcelport_lci/src/parcelport_lci.cpp 438+++ b/libs/full/parcelport_lci/src/parcelport_lci.cpp 439@@ -98,8 +98,13 @@ namespace hpx::parcelset::policies::lci { 440 sender_p->run(); 441 for (std::size_t i = 0; i != io_service_pool_.size(); ++i) 442 { 443+#if ASIO_VERSION >= 103400 444+ asio::post(io_service_pool_.get_io_service(static_cast<int>(i)), 445+ hpx::bind(&parcelport::io_service_work, this)); 446+#else 447 io_service_pool_.get_io_service(int(i)).post( 448 hpx::bind(&parcelport::io_service_work, this)); 449+#endif 450 } 451 return true; 452 } 453@@ -167,10 +172,10 @@ namespace hpx::parcelset::policies::lci { 454 static_cast<int>(hpx::get_local_worker_thread_num()); 455 HPX_ASSERT(prg_thread_id < config_t::progress_thread_num); 456 for (int i = prg_thread_id * config_t::ndevices / 457- config_t::progress_thread_num; 458- i < (prg_thread_id + 1) * config_t::ndevices / 459- config_t::progress_thread_num; 460- ++i) 461+ config_t::progress_thread_num; 462+ i < (prg_thread_id + 1) * config_t::ndevices / 463+ config_t::progress_thread_num; 464+ ++i) 465 { 466 devices_to_progress.push_back(&devices[i]); 467 } 468diff --git a/libs/full/parcelport_mpi/src/parcelport_mpi.cpp b/libs/full/parcelport_mpi/src/parcelport_mpi.cpp 469index e30025899e76..c319c54df7ef 100644 470--- a/libs/full/parcelport_mpi/src/parcelport_mpi.cpp 471+++ b/libs/full/parcelport_mpi/src/parcelport_mpi.cpp 472@@ -181,8 +181,14 @@ namespace hpx::parcelset { 473 474 for (std::size_t i = 0; i != io_service_pool_.size(); ++i) 475 { 476+#if ASIO_VERSION >= 103400 477+ asio::post( 478+ io_service_pool_.get_io_service(static_cast<int>(i)), 479+ hpx::bind(&parcelport::io_service_work, this)); 480+#else 481 io_service_pool_.get_io_service(static_cast<int>(i)) 482 .post(hpx::bind(&parcelport::io_service_work, this)); 483+#endif 484 } 485 return true; 486 } 487 488From 85805f56579fe6fa6c5905daa0d228eba26c40c3 Mon Sep 17 00:00:00 2001 489From: Hartmut Kaiser <hartmut.kaiser@gmail.com> 490Date: Mon, 30 Jun 2025 10:31:26 -0500 491Subject: [PATCH 2/2] Changing some CIs to use Asio 1.34.2 492 493Signed-off-by: Hartmut Kaiser <hartmut.kaiser@gmail.com> 494--- 495 .github/workflows/linux_debug.yml | 1 + 496 .github/workflows/macos_debug.yml | 1 + 497 .github/workflows/windows_debug_vs2022.yml | 1 + 498 libs/full/parcelport_lci/src/parcelport_lci.cpp | 2 ++ 499 4 files changed, 5 insertions(+) 500 501diff --git a/.github/workflows/linux_debug.yml b/.github/workflows/linux_debug.yml 502index 551e6d7215b2..0048b533326f 100644 503--- a/.github/workflows/linux_debug.yml 504+++ b/.github/workflows/linux_debug.yml 505@@ -26,6 +26,7 @@ jobs: 506 -DCMAKE_BUILD_TYPE=Debug \ 507 -DHPX_WITH_MALLOC=system \ 508 -DHPX_WITH_FETCH_ASIO=ON \ 509+ -DHPX_WITH_ASIO_TAG=asio-1-34-2 \ 510 -DHPX_WITH_EXAMPLES=ON \ 511 -DHPX_WITH_TESTS=ON \ 512 -DHPX_WITH_TESTS_MAX_THREADS_PER_LOCALITY=2 \ 513diff --git a/.github/workflows/macos_debug.yml b/.github/workflows/macos_debug.yml 514index 7d0936730d54..5406fc0be0f1 100644 515--- a/.github/workflows/macos_debug.yml 516+++ b/.github/workflows/macos_debug.yml 517@@ -29,6 +29,7 @@ jobs: 518 -GNinja \ 519 -DCMAKE_BUILD_TYPE=Debug \ 520 -DHPX_WITH_FETCH_ASIO=ON \ 521+ -DHPX_WITH_ASIO_TAG=asio-1-34-2 \ 522 -DHPX_WITH_EXAMPLES=ON \ 523 -DHPX_WITH_TESTS=ON \ 524 -DHPX_WITH_TESTS_MAX_THREADS_PER_LOCALITY=3 \ 525diff --git a/.github/workflows/windows_debug_vs2022.yml b/.github/workflows/windows_debug_vs2022.yml 526index cebecd992140..f91765418163 100644 527--- a/.github/workflows/windows_debug_vs2022.yml 528+++ b/.github/workflows/windows_debug_vs2022.yml 529@@ -31,6 +31,7 @@ jobs: 530 -DCMAKE_BUILD_TYPE=Debug \ 531 -DCMAKE_TOOLCHAIN_FILE='C:/projects/vcpkg/scripts/buildsystems/vcpkg.cmake' \ 532 -DHPX_WITH_FETCH_ASIO=ON \ 533+ -DHPX_WITH_ASIO_TAG=asio-1-34-2 \ 534 -DHPX_WITH_EXAMPLES=ON \ 535 -DHPX_WITH_TESTS=ON \ 536 -DHPX_WITH_TESTS_EXAMPLES=ON \ 537diff --git a/libs/full/parcelport_lci/src/parcelport_lci.cpp b/libs/full/parcelport_lci/src/parcelport_lci.cpp 538index 40cf14faba5c..b9d1bcf293e9 100644 539--- a/libs/full/parcelport_lci/src/parcelport_lci.cpp 540+++ b/libs/full/parcelport_lci/src/parcelport_lci.cpp 541@@ -171,6 +171,7 @@ namespace hpx::parcelset::policies::lci { 542 int prg_thread_id = 543 static_cast<int>(hpx::get_local_worker_thread_num()); 544 HPX_ASSERT(prg_thread_id < config_t::progress_thread_num); 545+ // clang-format off 546 for (int i = prg_thread_id * config_t::ndevices / 547 config_t::progress_thread_num; 548 i < (prg_thread_id + 1) * config_t::ndevices / 549@@ -179,6 +180,7 @@ namespace hpx::parcelset::policies::lci { 550 { 551 devices_to_progress.push_back(&devices[i]); 552 } 553+ // clang-format on 554 } 555 } 556 } 557