Skip to content
Andy Stewart edited this page Jun 26, 2023 · 2 revisions

多线程引起的崩溃

EAF大量使用多线程技术来保证任何EAF应用的操作都不会卡住Emacs。

如果你在使用EAF过程中,发现某些操作会导致EAF进程崩溃,大概率是Elisp调用Python函数时,对应的Python函数没有添加 @PostGUI() 装饰器,导致EAF子线程接受到Elisp消息后,在子线程调用了Qt图形代码。子线程调用Qt图形代码会导致EAF进程瞬间崩溃。

修复方式很简单:

  1. 找到崩溃的Python函数
  2. 确保函数所在文件已经从 core.utils 模块 import 了 PostGUI 函数
  3. 在发生崩溃的Python函数上面添加 @PostGUI() 装饰器

欢迎发送PR修复问题,帮助EAF运行的更加稳定。

PyQt环境引起的崩溃

我在Arch上遇到当PyQt环境有问题的时候会引起偶然崩溃, 解决方法如下:

  1. 清空系统的 PyQt 目录: sudo rm -rf /usr/lib/python3.11/site-packages/PyQt*
  2. 重新安装依赖: ./install-eaf.py --force
Clone this wiki locally