【问题标题】:App shutdown with EXC_RESOURCE, WAKEUPS exception on iOS 8 GM应用程序关闭与 EXC_RESOURCE,iOS 8 GM 上的 WAKEUPS 异常
【发布时间】:2014-11-09 00:04:17
【问题描述】:

有谁知道 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 上...我们的应用程序会以任意时间间隔随机关闭,但此异常..

欢迎提供任何线索。谢谢!

【问题讨论】:

  • 这个运气好吗?我遇到了同样的错误,罪魁祸首是:Thread 4 name: WebThread
  • 我有完全相同的错误。使用 Xamarin 和 OpenTok
  • 我们的应用程序遇到了类似的问题,这可能与 Ryan 下面所说的有关。基本上我们正在使用 SKAction playSoundFileNamed 播放声音效果:但有时,它不会随机播放任何声音,除非您退出应用程序并稍后恢复它,然后它会立即播放所有声音,这表明某些东西正在阻止这些动作......如果你继续在这种状态下玩一段时间,你最终会看到这个崩溃......
  • iOS9 添加了异常注意:非致命条件(这不是崩溃)但它似乎被驱逐了(我不完全确定:我在 ios9 和但是只看过一次这个崩溃报告)。

标签: ios crash report ios8 shutdown


【解决方案1】:

您的应用经常向应用中的特定线程发送唤醒命令 - 显然平均每秒 206 次。 iOS 8 中的后台线程对您每秒可以在每个线程上运行睡眠/唤醒周期的次数有硬性限制,此处的高计数通常表明您的线程管理中有问题/效率低下。

在没有看到您的代码的情况下,我的建议是您检查您的 C++ 算法是否有睡眠/唤醒调用,或者多线程后台进程以在每个周期启动新线程。

Ray Wenderlich 有一个关于 Apple 的多线程系统 Grand Central Dispactch 的精彩教程,这对您来说可能也是一个很好的资源:@​​987654321@

【讨论】:

  • 有没有办法控制和限制特定线程上的唤醒调用次数?因为,正在运行的线程显然会在它的工作完成后停止,没有必要经常尝试唤醒它!
  • 你能提供一个代码示例来帮助我更好地理解这个问题吗?
  • 在后台线程中使用@synchronized会导致这个问题吗?
【解决方案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 and OpenGL issues/crashes 我已经向苹果提交了错误 23389472, 因为在我的情况下,这不是我或某些第 3 方代码创建的线程, 因此,这很可能不是我的错误。 底线是:如果有问题的线程是您的(显然包括第 3 方软件),那么 Ryan 的答案适用。否则你要么有 联系 Apple 和/或同时寻找解决方法。

    【讨论】:

      猜你喜欢
      • 2016-09-15
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      • 1970-01-01
      相关资源
      最近更新 更多