这是一个包含若干重要修复和改进的新版本:
-
gumjs:在减少模块引用计数时放弃 JS 锁。这可避免
dispose()释放缓存句柄时发生死锁。这类操作通常需要获取运行时链接器锁。另一个线程可能已持有该锁,同时等待 JS 锁。发生这种情况的常见场景是,agent 向运行时链接器注册了一个回调,每当加载或卸载模块时就会调用。感谢 @mrmacete 报告。
-
agent:在版本脚本中排除特定于操作系统/体系结构的符号。FreeBSD 14.2 的默认工具链等较新的工具链,不接受对不存在符号的引用。我们不再列出只为 Android 构建定义的
JNI_OnLoad,而是为 Android 使用单独的版本脚本。 -
ci:将 CI 从已经结束生命周期的 FreeBSD 14.0 迁移到 FreeBSD 14.2。我们的 FreeBSD CI 在过去几周的某个时候坏了,一直没被发现,直到它导致上一个版本未能发布。糟糕!
oleavr