On lyx-users Anders reports that the following does not trigger the
issue:

  command-sequence buffer-close-all; lyx-quit

This suggests the idea that we can just call buffer-close-all inside of
lyx-quit, as done in the attached patch.

Any thoughts?

I have no strong opinion at all on this, and am fine to keep the code as
is.

Scott
From baf781f63eb949315bfcc948fb933fabdc590b76 Mon Sep 17 00:00:00 2001
From: Scott Kostyshak <[email protected]>
Date: Wed, 18 Mar 2026 08:46:13 +0100
Subject: [PATCH] Alternative workaround for macOS SIGABRT on exit

Anders confirms [1] that the following works well:

  command-sequence buffer-close-all; lyx-quit

This commit just modifies LYX_QUIT to first call BUFFER_CLOSE_ALL on
macOS.

[1] https://www.mail-archive.com/search?l=mid&q=733DAA0A-C2E5-47E8-A7EA-0710F43F7952%40me.com
---
 src/frontends/qt/GuiApplication.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/frontends/qt/GuiApplication.cpp b/src/frontends/qt/GuiApplication.cpp
index d658cec6cb..0ff17196b1 100644
--- a/src/frontends/qt/GuiApplication.cpp
+++ b/src/frontends/qt/GuiApplication.cpp
@@ -1800,8 +1800,9 @@ void GuiApplication::dispatch(FuncRequest const & cmd, DispatchResult & dr)
 		// FIXME: This fix should be removed once the problem is gone.
 #if defined(Q_OS_MACOS) && QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
 		if (QOperatingSystemVersion::current() >= QOperatingSystemVersion(QOperatingSystemVersion::MacOS, 26))
-				std::this_thread::sleep_for(std::chrono::seconds(2));
+			lyx::dispatch(FuncRequest(LFUN_BUFFER_CLOSE_ALL));
 #endif
+
 		// quitting is triggered by the gui code
 		// (leaving the event loop).
 		if (current_view_)
-- 
2.48.1

Attachment: signature.asc
Description: PGP signature

-- 
lyx-devel mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to