On Mon, 19 Apr 2021 at 20:39, Joost Kraaijeveld via Boost-users <
boost-users@lists.boost.org> wrote:

> Hi,
>
> In short my program:
> - creates an io_service
> - calls acceptor::async_accept
> - calls io_service.run
> - handle several connections OK
> - calls io_service.stop
> - the acceptor goes out of scope (i.e. the destructor of the owning
> object is ran)
> - calls io_service.restart
> - calls acceptor::async_accept which then throws "Operation cancelled"
>
> Should it be possible to do this? When/under what circumstances does
> async_accept throw this exception?
>

Difficult to comment without compiling up the code and trying it locally.
Are you able to share a git repo that I can build? (cmake if possible)

Thanks.


>
> Could it be connected with the fact that the acceptor's destructors
> documents that is does some cleanup but actually does nothing, from the
> source:
>
> /// Destroys the acceptor.
>   /**
>    * This function destroys the acceptor, cancelling any outstanding
>    * asynchronous operations associated with the acceptor as if by calling
>    * @c cancel.
>    */
>   ~basic_socket_acceptor()
>   {
>   }
>
> OS: Linux Debian Bullseye, Boost 1.74, gcc 10
>
> TIA
>
> Joost
>
>
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users@lists.boost.org
> https://lists.boost.org/mailman/listinfo.cgi/boost-users
>
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
https://lists.boost.org/mailman/listinfo.cgi/boost-users

Reply via email to