stop () просто сигнализирует io_service об остановке.Если вы выполняете вызов stop () с помощью другого вызова run (), он должен вернуться и очиститься должным образом.
В документации .
обсуждается вопрос об исключении из обработчиков
Я также предполагаю, что проблема может быть связана с некоторой проблемой времени жизни объекта, например, служба io уничтожена, пока что-то еще ссылается на нее.Присмотритесь к примерам и тому, как используются общие указатели, чтобы гарантировать, что объекты все еще находятся вокруг.