Ошибки при асинхронных опирациях asio, асинхронный сервер TCP.. |
Здравствуйте, гость ( Вход | Регистрация )
Ошибки при асинхронных опирациях asio, асинхронный сервер TCP.. |
Гость_Гость_Алексей_*_* |
28.12.2011, 15:21
Сообщение
#1
|
Гости |
Проблема наверн стандартная, но нормального решения её я не смог нагуглить.
Примерчик обычный... после подключения сессия начинает ждать данные сервер создаёт ещё одну и ждёт пока не придёт подключение.... запускается сессия методом start....
когда я удаляю сессию в очереди остаются асинхронные операции... которые в итоге роняют сервер... я пробовал просто закрыть сокет... или вызывать кансел для сокета... но сервер всё равно падает. читал под линукс всё отработает норм после вызова кансел...... как быть под виндой? |
|
|
Гость_Гость_Алексей_*_* |
29.12.2011, 10:42
Сообщение
#2
|
Гости |
Значит используем boost::enable_shared_from_this в качестве предка Session. В момент, когда нужно прервать работу и уничтожить объект Session, делаем для сокета shutdown, все активные (уже запущенные обработчики) сработают с error == operation_aborted и при получении этого кода, ты не будешь перезапускать обработчики. Ссылок на объект не останеться и он будет разрушен. Наверно так и сделаю. Спасибо BRE за помощь... |
|
|
Текстовая версия | Сейчас: 25.11.2024, 21:11 |