Skip to content
Andy Stewart edited this page May 31, 2023 · 2 revisions

EAF extensively uses multithreading technology to ensure that any operation of an EAF application does not block Emacs.

If you find that certain operations cause the EAF process to crash during use, it is highly likely that the corresponding Python function was not added with the @PostGUI() decorator when the Elisp calls the Python function. This causes the EAF subthread to receive Elisp messages and then call Qt graphical code in the subthread. Calling Qt graphical code in a subthread will cause the EAF process to crash instantly.

The fix is simple:

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

Feel free to submit PRs to fix issues and help EAF run more stably.

Clone this wiki locally