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