summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Duffield <jessedduffield@gmail.com>2023-07-10 13:05:49 +1000
committerJesse Duffield <jessedduffield@gmail.com>2023-07-10 17:12:34 +1000
commitc05a1ae71197d95038add5aef3a16dccc3c851d4 (patch)
tree0dbdf0cfb7c78c65b9351db11e7613833190bbce
parenta0154dc5257e6b3f5c6f8bb25836b3aecc671875 (diff)
Fix flakey misc/initial_open test
I've simplifiied the code because it was too complex for the current requirements, and this fixed the misc/initial_open test which was occasionally failing due to a race condition around busy tasks
-rw-r--r--pkg/gui/gui.go40
-rw-r--r--pkg/gui/layout.go4
2 files changed, 14 insertions, 30 deletions
diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go
index d1f000c99..1057a85bf 100644
--- a/pkg/gui/gui.go
+++ b/pkg/gui/gui.go
@@ -780,37 +780,23 @@ func (gui *Gui) loadNewRepo() error {
return nil
}
-func (gui *Gui) showInitialPopups(popupTasks []func(chan struct{}) error) {
- gui.waitForIntro.Add(len(popupTasks))
- done := make(chan struct{})
-
- gui.c.OnWorker(func(task gocui.Task) {
- for _, popupTask := range popupTasks {
- if err := popupTask(done); err != nil {
- _ = gui.c.Error(err)
- }
+func (gui *Gui) showIntroPopupMessage() {
+ gui.waitForIntro.Add(1)
- task.Pause()
- <-done
- task.Continue()
+ gui.c.OnUIThread(func() error {
+ onConfirm := func() error {
+ gui.c.GetAppState().StartupPopupVersion = StartupPopupVersion
+ err := gui.c.SaveAppState()
gui.waitForIntro.Done()
+ return err
}
- })
-}
-
-func (gui *Gui) showIntroPopupMessage(done chan struct{}) error {
- onConfirm := func() error {
- gui.c.GetAppState().StartupPopupVersion = StartupPopupVersion
- err := gui.c.SaveAppState()
- done <- struct{}{}
- return err
- }
- return gui.c.Confirm(types.ConfirmOpts{
- Title: "",
- Prompt: gui.c.Tr.IntroPopupMessage,
- HandleConfirm: onConfirm,
- HandleClose: onConfirm,
+ return gui.c.Confirm(types.ConfirmOpts{
+ Title: "",
+ Prompt: gui.c.Tr.IntroPopupMessage,
+ HandleConfirm: onConfirm,
+ HandleClose: onConfirm,
+ })
})
}
diff --git a/pkg/gui/layout.go b/pkg/gui/layout.go
index 919186aa5..14f79cb5a 100644
--- a/pkg/gui/layout.go
+++ b/pkg/gui/layout.go
@@ -213,12 +213,10 @@ func (gui *Gui) onInitialViewsCreation() error {
gui.g.Mutexes.ViewsMutex.Unlock()
if !gui.c.UserConfig.DisableStartupPopups {
- popupTasks := []func(chan struct{}) error{}
storedPopupVersion := gui.c.GetAppState().StartupPopupVersion
if storedPopupVersion < StartupPopupVersion {
- popupTasks = append(popupTasks, gui.showIntroPopupMessage)
+ gui.showIntroPopupMessage()
}
- gui.showInitialPopups(popupTasks)
}
if gui.showRecentRepos {