Open germandiagogomez opened 2 years ago
I tried with standalone Asio as well. Same problem as in my original post at the toop-level without ASIO_HAS_IO_URING
. With ASIO_HAS_IO_URING
I get another compilation error, though (it does not even compile, unlike with Boost version, which compiles but I seem to have run-time problems):
In file included from /usr/local/include/asio/detail/impl/scheduler.ipp:28,
from /usr/local/include/asio/detail/scheduler.hpp:238,
from /usr/local/include/asio/system_context.hpp:19,
from /usr/local/include/asio/impl/system_executor.hpp:21,
from /usr/local/include/asio/system_executor.hpp:682,
from /usr/local/include/asio/associated_executor.hpp:24,
from /usr/local/include/asio.hpp:19,
from ../src/count_words/count_words.hpp:24,
from ../programs/words_counter.cpp:1:
/usr/local/include/asio/detail/io_uring_service.hpp: At global scope:
/usr/local/include/asio/detail/io_uring_service.hpp:297:3: error: ‘reactor’ does not name a type
297 | reactor& reactor_;
| ^~~~~~~
/usr/local/include/asio/detail/io_uring_service.hpp:300:3: error: ‘reactor’ does not name a type
300 | reactor::per_descriptor_data reactor_data_;
| ^~~~~~~
In file included from /usr/local/include/asio/detail/io_uring_service.hpp:313,
from /usr/local/include/asio/detail/impl/scheduler.ipp:28,
from /usr/local/include/asio/detail/scheduler.hpp:238,
from /usr/local/include/asio/system_context.hpp:19,
from /usr/local/include/asio/impl/system_executor.hpp:21,
from /usr/local/include/asio/system_executor.hpp:682,
from /usr/local/include/asio/associated_executor.hpp:24,
from /usr/local/include/asio.hpp:19,
from ../src/count_words/count_words.hpp:24,
from ../programs/words_counter.cpp:1:
/usr/local/include/asio/detail/impl/io_uring_service.ipp: In constructor ‘asio::detail::io_uring_service::io_uring_service(asio::execution_context&)’:
/usr/local/include/asio/detail/impl/io_uring_service.ipp:46:5: error: class ‘asio::detail::io_uring_service’ does not have any field named ‘reactor_’
46 | reactor_(use_service<reactor>(ctx)),
| ^~~~~~~~
/usr/local/include/asio/detail/impl/io_uring_service.ipp:46:26: error: ‘reactor’ was not declared in this scope
46 | reactor_(use_service<reactor>(ctx)),
| ^~~~~~~
/usr/local/include/asio/detail/impl/io_uring_service.ipp:46:34: error: no matching function for call to ‘use_service<<expression error> >(asio::execution_context&)’
46 | reactor_(use_service<reactor>(ctx)),
| ~~~~~~~~~~~~~~~~~~~~^~~~~
In file included from /usr/local/include/asio/execution_context.hpp:407,
from /usr/local/include/asio/detail/scheduler.hpp:21,
from /usr/local/include/asio/system_context.hpp:19,
from /usr/local/include/asio/impl/system_executor.hpp:21,
from /usr/local/include/asio/system_executor.hpp:682,
from /usr/local/include/asio/associated_executor.hpp:24,
from /usr/local/include/asio.hpp:19,
from ../src/count_words/count_words.hpp:24,
from ../programs/words_counter.cpp:1:
/usr/local/include/asio/impl/execution_context.hpp:29:17: note: candidate: ‘template<class Service> Service& asio::use_service(asio::execution_context&)’
29 | inline Service& use_service(execution_context& e)
| ^~~~~~~~~~~
/usr/local/include/asio/impl/execution_context.hpp:29:17: note: template argument deduction/substitution failed:
In file included from /usr/local/include/asio/detail/io_uring_service.hpp:313,
from /usr/local/include/asio/detail/impl/scheduler.ipp:28,
from /usr/local/include/asio/detail/scheduler.hpp:238,
from /usr/local/include/asio/system_context.hpp:19,
from /usr/local/include/asio/impl/system_executor.hpp:21,
from /usr/local/include/asio/system_executor.hpp:682,
from /usr/local/include/asio/associated_executor.hpp:24,
from /usr/local/include/asio.hpp:19,
from ../src/count_words/count_words.hpp:24,
from ../programs/words_counter.cpp:1:
/usr/local/include/asio/detail/impl/io_uring_service.ipp:46:34: error: template argument 1 is invalid
46 | reactor_(use_service<reactor>(ctx)),
| ~~~~~~~~~~~~~~~~~~~~^~~~~
In file included from /usr/local/include/asio/detail/scheduler.hpp:21,
from /usr/local/include/asio/system_context.hpp:19,
from /usr/local/include/asio/impl/system_executor.hpp:21,
from /usr/local/include/asio/system_executor.hpp:682,
from /usr/local/include/asio/associated_executor.hpp:24,
from /usr/local/include/asio.hpp:19,
from ../src/count_words/count_words.hpp:24,
from ../programs/words_counter.cpp:1:
/usr/local/include/asio/execution_context.hpp:34:38: note: candidate: ‘template<class Service> Service& asio::use_service(asio::io_context&)’
34 | template <typename Service> Service& use_service(io_context&);
| ^~~~~~~~~~~
/usr/local/include/asio/execution_context.hpp:34:38: note: template argument deduction/substitution failed:
In file included from /usr/local/include/asio/detail/io_uring_service.hpp:313,
from /usr/local/include/asio/detail/impl/scheduler.ipp:28,
from /usr/local/include/asio/detail/scheduler.hpp:238,
from /usr/local/include/asio/system_context.hpp:19,
from /usr/local/include/asio/impl/system_executor.hpp:21,
from /usr/local/include/asio/system_executor.hpp:682,
from /usr/local/include/asio/associated_executor.hpp:24,
from /usr/local/include/asio.hpp:19,
from ../src/count_words/count_words.hpp:24,
from ../programs/words_counter.cpp:1:
/usr/local/include/asio/detail/impl/io_uring_service.ipp:46:34: error: template argument 1 is invalid
46 | reactor_(use_service<reactor>(ctx)),
| ~~~~~~~~~~~~~~~~~~~~^~~~~
/usr/local/include/asio/detail/impl/io_uring_service.ipp:47:5: error: class ‘asio::detail::io_uring_service’ does not have any field named ‘reactor_data_’
47 | reactor_data_(),
| ^~~~~~~~~~~~~
/usr/local/include/asio/detail/impl/io_uring_service.ipp:50:3: error: ‘reactor_’ was not declared in this scope
50 | reactor_.init_task();
| ^~~~~~~~
When using Boost.Asio 1.78, to use the new
stream_file
API I had to defineBOOST_ASIO_HAS_FILE
by hand (not sure this is intended).When using the new
stream_file
, without definingBOOST_ASIO_HAS_IO_URING
I get the following compilation error, which disappears when I defineBOOST_ASIO_HAS_IO_URING
. However, when definingBOOST_ASIO_HAS_IO_URING
the run-time gives an invalid argument error: