首页 > 解决方案 > objc-runtime search_method_list 永远挂起,死锁?

问题描述

macOS/iOS 开发人员,从大约两个月前开始,我的应用程序有时会永远挂起。然后我对我发现几乎线程的程序进行采样,除了主线程正在等待锁定。主线程在 objc-runtime 代码中执行,如下图所示。并且应用程序不会崩溃,方法不会返回:(

主线程

正在执行 objc 代码的其他线程正在等待锁定

然后,我查看了 objc-runtime 源代码objc-runtime并编译了一个调试版本,链接到我的程序。它重新产生了问题。在函数IMP lookUpImpOrForward(Class cls, SEL sel, id inst, bool initialize, bool cache, bool resolver)中,主线程确实持有runtimeLock并且其他线程正在等待。但我不知道可能导致问题的原因是什么,根本原因是什么?有什么猜测吗?谢谢大家!

标签: iosobjective-ccocoaobjective-c-runtime

解决方案


推荐阅读