From 49f5fbb231299df272274dc98d288a19249226e2 Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Mon, 15 Jun 2020 14:10:44 +0100 Subject: [PATCH] Fix a possible crash if opening a window during shutdown This may not be the desired solution as it commits to close as soon as there are no windows. A future change could address #467 to add a veto-close function. --- internal/driver/glfw/loop.go | 4 ++++ internal/driver/glfw/window.go | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/driver/glfw/loop.go b/internal/driver/glfw/loop.go index 4f117cb1fe..bd81440c3e 100644 --- a/internal/driver/glfw/loop.go +++ b/internal/driver/glfw/loop.go @@ -137,6 +137,10 @@ func (d *gLDriver) runGL() { d.windowLock.Lock() d.windows = newWindows d.windowLock.Unlock() + + if len(newWindows) == 0 { + d.Quit() + } } } } diff --git a/internal/driver/glfw/window.go b/internal/driver/glfw/window.go index 5ef2945806..4bde2f9d92 100644 --- a/internal/driver/glfw/window.go +++ b/internal/driver/glfw/window.go @@ -452,7 +452,7 @@ func (w *window) destroy(d *gLDriver) { w.eventLock.Unlock() } - if w.master || len(d.windowList()) == 0 { + if w.master { d.Quit() } else if runtime.GOOS == "darwin" { d.focusPreviousWindow()