Velvet Star Monitor

Standout celebrity highlights with iconic style.

general

Boost asio io_service vs io_context

Writer Emily Wong

I am using boost asio library with c++. I found that io_service and io_context have similarities. for example both have method run and others. Could someone please detail differences between these two classes( like usage, conceptual idea, structural difference et.c)

1 Answer

You should use io_context, it replaces io_service.

According to boost issue #110:

io_service is deprecated. Yes, you should use io_context. Beware that the "old" API is deprecated as well (e.g. io_service.post(), you should use post(io_context, handler)).

. . .

io_service -> io_context
io_service.post() -> io_context.get_executor().post()
io_service.dispatch() -> io_context.get_executor().dispatch()

io_service::strand -> strand<io_context::executor_type>

there were also changes to composed operation customization hooks - there are only 2 now - boost::asio::associated_allocator andboost::asio::associated_executor, which default to looking forget_allocator(), get_executor(), T::allocator_type, T::executor_typemembers of the composed operation function object.

This is not a complete list.

These changes are related to Networking TS compatibility.

Seems to have been added in Boost 1.66.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy