(p: AB) => void
в функцию (p: A) => void
за счёт того, что помалкивает на счёт разных типов аргумента.Int1
мы имеем дело с методом типа (p: A) => void
(this опустим из рассмотрения), при этом фактически там будет (p: AB) => void
, если это будет объект класса Class1
Логично, это ж event loop.
А вот этот пример смотрели? https://www.boost.org/doc/libs/1_75_0/doc/html/boo... Как раз про вас.
Вот вы бы лучше ЭТОТ код привели, т.к. это и есть основной способ решения вашей задачи "повисания" - добавить таймеры и обрабатывать таймаут. Непонятно, правильно ли вы написали этот код с таймерами или нет, раз вас удивляет что вызов io_context.run(); не возвращается.