Мы пишем приложение для iPad с довольно большой фоновой обработкой, которая написана в виде набора библиотек C ++.Эти библиотеки прекрасно работают на Linux, Mac и Windows, но на iPad они работают только в отладочных сборках.
В релизных сборках похоже, что когда запускается первый подпоток, он либо вообще не запускается,или он не заходит достаточно далеко в своей обработке, чтобы позволить основному потоку продолжаться (это не очень очевидно из отладчика, если поток фактически запускается или нет из-за обычной проблемы использования точек останова в сборках выпуска).
Глядя в отладчик, главный поток находится в boost::thread::start_thread
(фактически внутри boost::detail::yield
в boost::detail::spin_lock::lock
).
Процессор не на 100%, поэтому он не отображаетсячто спин-блокировка истощает создание нового потока.
Мы пробовали и Boost 1.42, и Boost 1.44, и они оба ведут себя одинаково.И iOS 3.2, и 4.2 оба терпят неудачу с выпусками сборки.
Что мы, вероятно, делаем неправильно, или это известная нерабочая конфигурация?