我們正在編寫一個iPad應用程序,其中有相當多的後臺處理,所有這些都是用一組C++庫編寫的。這些庫在Linux,Mac和Windows上運行良好,但在iPad上它們只能用於調試版本。Boost.Thread線程在發佈版本中不在iPhone/iPad上啓動
在發佈版本中,它看起來像是第一個子線程正在啓動時,它可能永遠不會啓動,或者它的處理過程不夠遠,不能讓主線程繼續運行(它不是由於在發佈版本中使用斷點的正常問題,調試器非常明顯地知道線程是否真的開始啓動)。
在調試器中查看主線程位於boost::thread::start_thread
(實際上在boost::detail::yield
內boost::detail::spin_lock::lock
內)。
CPU沒有達到100%,所以看起來旋轉鎖不會阻止新線程的創建。
我們嘗試了Boost 1.42和Boost 1.44,它們的行爲方式都是一樣的。 iOS 3.2和4.2都會因發佈版本而失敗。
我們可能做錯了什麼,或者這是一個已知的非工作配置?