1
我基本上是在ASIO文档中基于序列化示例构建一个共享库,我的意思是我正在编译-shared和-fpic选项来生成一个.so文件,其中包括钩/包装。Boost ASIO共享库问题
我对另一个进程运行共享库,然后我的代码通过库中的构造函数(如Windows上的DLLMain)运行。
我知道我的代码正在执行,它运行良好,直到某个点。基本上我的问题涉及到试图把ASIO和我的网络代码放到另一个线程上。我使用下面的代码来做到这一点:
asio::io_service io_service;
server server(io_service, port);
asio::thread t(boost::bind(&asio::io_service::run, &io_service));
现在,这个代码库中的一个构造函数中运行,是抛出一个赛格故障,我想不通为什么。如果我将其替换为:
asio::io_service io_service;
server server(io_service, port);
io_service.run();
代码运行100%的罚款,但它窃取执行的整个主题和挂钩过程将无法运行。有人可以帮我从这里出去吗?我很困惑。
干杯
我怀疑,它的东西到对象的生命周期有关。您是否在asio :: thread语句之后使用t.join()? – Icarus3 2013-04-08 15:11:58