Объект tcp :: acceptor, вызывающий boost :: asio :: io_service :: run для немедленного выхода из файла .so - PullRequest
0 голосов
/ 05 июля 2018

Я использовал boost async io для своего сервера приложений. Я следил за бустером по чату . когда я делаю автономный исполняемый сервер, все асинхронные (async_read, async_write, post) операции выполняются при вызове boost :: asio :: io_service :: run, но когда я пытался использовать тот же класс внутри моего общего объекта (.so ) file, boost :: asio :: io_service :: run вызов возвращается немедленно. Проблема возникает после создания объекта tcp :: acceptor. Я прокомментировал создание объекта tcp :: acceptor и попытался выполнить асинхронную операцию post в моем коде so, он был выполнен правильно при вызове boost :: asio :: io_service :: run.

Я абсолютный новичок в повышении asio, пожалуйста, помогите мне понять, почему вызов boost :: asio :: io_service :: run немедленно возвращается при использовании в таком коде

Edit: Я использую сторонний API и загружаю свой общий объектный файл динамически. Я создал код mcve для динамической загрузки и вызова функций so, но функция boost :: asio :: io_service :: run работает нормально в моем коде mcve. Какие еще шаги я могу предпринять для устранения проблемы в io_service

1 Ответ

0 голосов
/ 08 июля 2018

Наконец-то обнаружена проблема, она возникла из-за другой версии gcc, используемой для исполняемого файла api и файла

...