Подтвердить что ты не робот

Закрытие приложения с EXC_RESOURCE, исключение WAKEUPS на iOS 8 GM

Кто-нибудь знает, что такое исключение на iOS 8?

=== из отчета о сбоях ===

Exception Type: EXC_RESOURCE
Exception Subtype: WAKEUPS
Exception Message: (Limit 150/sec) Observed 206/sec over 300 secs
Triggered by Thread: 14

Кажется, случиться только на iOS 8... Наше приложение закрывается довольно случайным образом с произвольными интервалами с этим исключением.

Любые подсказки приветствуются. Спасибо!

4b9b3361

Ответ 1

Ваше приложение часто посылает команду пробуждения в конкретный поток приложения - видимо, в среднем 206 раз в секунду. Фоновые потоки в iOS 8 имеют жесткое ограничение на то, сколько раз вы можете запускать цикл sleep/wake для каждого потока в секунду, а наличие большого количества здесь обычно является признаком того, что в управлении потоками что-то не так/неэффективно.

Не видя свой код, я рекомендую вам проверить свои алгоритмы С++ для вызовов сна/бодрствования или многопоточность фонового процесса для запуска новых потоков в каждом цикле.

У Ray Wenderlich есть фантастический учебник по системе Apple для многопоточности, Grand Central Dispactch, который также может быть хорошим ресурсом для вас: http://www.raywenderlich.com/60749/grand-central-dispatch-in-depth-part-1

Ответ 2

Используя Xamarin, мы тоже получили эту проблему. Мы использовали 4 SemaphoreSlim, которые ждали в то же время в течение слишком длительного периода времени. Замена SemaphoreSlim другой примитивной синхронизацией (AutoResetEvent в нашем случае для имитации семафора из 1 элемента) исправила проблему.

Ответ 3

В моем случае на ios 9.1 это отключено нитью 2 который, как представляется, является одним из рабочих для драйвера GLES вызвать поиск по источникам проекта, которых я не вижу любые ссылки на GPUTools.

Thread 2 name:  gputools.smt_poll.0x145722df0
Thread 2 Attributed:
0   libsystem_kernel.dylib          0x000000019a8b7440 __semwait_signal + 8
1   libsystem_c.dylib               0x000000019a7c9e2c nanosleep + 212
2   libsystem_c.dylib               0x000000019a7c9d4c 0x19a7bc000 + 56652
3   GPUToolsCore                    0x0000000100ba0ae0 0x100b98000 + 35552
4   libsystem_pthread.dylib         0x000000019a97fb28 _pthread_body + 156
5   libsystem_pthread.dylib         0x000000019a97fa8c _pthread_body + 0
6   libsystem_pthread.dylib         0x000000019a97d028 thread_start + 4

Смотрите это: iOS 7 и проблемы/сбои OpenGL Я подал ошибку 23389472 с яблоком, потому что в моем случае это не поток, который я создал или какой-то сторонний код, и, таким образом, это, скорее всего, не моя ошибка. Итог: если оскорбительная нить ваша (что включает стороннее программное обеспечение, очевидно), то ответ Райана применяется. В противном случае у вас есть связаться с Apple и/или, в то же время, найти обходное решение.