Arrêt de l'application avec EXC_RESOURCE, exception WAKEUPS sur iOS 8 GM

Est-ce que quelqu'un sait ce que ce genre d'exception est sur iOS 8?

=== du rapport d'accident ===

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

Cela ne semble se produire que sur iOS 8 … Notre application est fermée de manière assez random à des intervalles arbitraires avec cette exception.

Tous les indices sont les bienvenus. Merci!

Votre application envoie une command de réveil à un thread particulier de l'application assez souvent – apparemment une moyenne de 206 fois par seconde. Les threads d'arrière-plan dans iOS 8 ont une limite ssortingcte sur combien de fois vous pouvez exécuter un cycle de veille / réveil sur chaque thread par seconde, et avoir un nombre élevé ici est généralement une indication que quelque chose est incorrect / inefficace dans votre gestion des threads.

Sans voir votre code, je vous recommand de vérifier vos algorithms C ++ pour les appels de veille / veille, ou de multithread le process en arrière-plan pour démarrer de nouveaux threads à chaque cycle.

Ray Wenderlich a un tutoriel fantastique sur le système d'Apple pour le multithreading, Grand Central Dispactch, qui pourrait également être une bonne ressource pour vous: http://www.raywenderlich.com/60749/grand-central-dispatch-in-depth-part- 1

En utilisant Xamarin, nous avons aussi ce problème. Nous utilisions 4 SemaphoreSlim qui attendaient en même time depuis trop longtime. Le rlocation de SemaphoreSlim par une autre synchronisation primitive (AutoResetEvent dans notre cas pour simuler un sémaphore de 1 élément) a résolu le problème.

Dans mon cas sur ios 9.1 cela est déclenché par le thread 2 qui semble être un peu de travail pour le pilote GLES car la search à travers les sources du projet je ne vois aucune reference à GPUTools.

 Thread 2 name: gputools.smt_poll.0x145722df0 Thread 2 Atsortingbuted: 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 

Voir ceci: iOS 7 et OpenGL problèmes / accidents J'ai déposé le bug 23389472 avec apple, parce que dans mon cas, ce n'est pas un fil que j'ai ou un code tiers a créé, et, donc, ce n'est très probablement pas mon punaise. Bottom line est: si le thread incriminé est le vôtre (qui comprend évidemment un logiciel tiers) alors la réponse de Ryan s'applique. Sinon, vous devez soit contacter Apple et / ou, en attendant, chercher une solution de contournement.