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

Crashes caused by multithreading

EAF extensively uses multithreading technology to ensure that any EAF application's operations do not block Emacs.

If you find that some operations cause the EAF process to crash during the use of EAF, it is highly likely that the corresponding Python function was not added with the @PostGUI() decorator when the Elisp called the Python function. This causes the EAF subprocess to receive the Elisp message and call the Qt graphics code in the subprocess. Calling the Qt graphics code in the subprocess will cause the EAF process to crash instantly.

The fix is simple:

  1. Find the Python function that causes the crash
  2. Ensure that the file containing the function has imported the PostGUI function from the core.utils module
  3. Add the @PostGUI() decorator above the crashing Python function

Feel free to send PRs to fix the problem and help EAF run more stably.

Crashes caused by PyQt environment

I encountered occasional crashes on Arch when the PyQt environment had problems. The solution is as follows:

  1. Clear the system's PyQt directory: sudo rm -rf /usr/lib/python3.11/site-packages/PyQt*
  2. Reinstall dependencies: ./install-eaf.py --force