ios - objc-runtime search_method_list 永远挂起,死锁?
问题描述
macOS/iOS 开发人员,从大约两个月前开始,我的应用程序有时会永远挂起。然后我对我发现几乎线程的程序进行采样,除了主线程正在等待锁定。主线程在 objc-runtime 代码中执行,如下图所示。并且应用程序不会崩溃,方法不会返回:(
然后,我查看了 objc-runtime 源代码objc-runtime并编译了一个调试版本,链接到我的程序。它重新产生了问题。在函数IMP lookUpImpOrForward(Class cls, SEL sel, id inst,
bool initialize, bool cache, bool resolver)
中,主线程确实持有runtimeLock并且其他线程正在等待。但我不知道可能导致问题的原因是什么,根本原因是什么?有什么猜测吗?谢谢大家!
解决方案
推荐阅读
- java - 如何编写测试用例?
- javascript - 在角度 AoT 编译器中导出变量
- python - 通过 boto3 担任 IAM 用户角色时访问被拒绝
- asp.net-mvc - 如果表单无效或为空,则禁用复选框,如果有效则启用
- ios - 在 UIScrollView 中显示多个 UIView 的小缩略图/镜像
- azure - 获取 API 范围策略 XML
- angularjs - 使用上下文访问嵌套 Angular foreach 循环中的变量
- vba - 键的集合返回值
- regex - 如何根据 Google 表格中的一列中的多个文本值查找并返回一个值
- python - 我的绑定不会执行我的功能