Review feedback

pull/135/head
Konstantin Vorobyev 6 years ago
parent 2ac0e9e086
commit 01a39a486d

@ -41,7 +41,7 @@ type Application struct {
// was drawn. // was drawn.
afterDraw func(screen tcell.Screen) afterDraw func(screen tcell.Screen)
// Used for events loop lock during Suspend() // Halts the event loop during suspended mode
suspendMutex sync.Mutex suspendMutex sync.Mutex
} }
@ -183,13 +183,14 @@ func (a *Application) Suspend(f func()) bool {
a.Lock() a.Lock()
if a.screen == nil { if a.screen == nil {
// Application is already suspended. // Screen has not yet been initialized
a.Unlock() a.Unlock()
return false return false
} }
// Enter suspended mode. // Enter suspended mode.
a.suspendMutex.Lock() a.suspendMutex.Lock()
defer a.suspendMutex.Unlock()
a.Unlock() a.Unlock()
a.Stop() a.Stop()
@ -209,12 +210,10 @@ func (a *Application) Suspend(f func()) bool {
var err error var err error
a.screen, err = tcell.NewScreen() a.screen, err = tcell.NewScreen()
if err != nil { if err != nil {
a.suspendMutex.Unlock()
a.Unlock() a.Unlock()
panic(err) panic(err)
} }
if err = a.screen.Init(); err != nil { if err = a.screen.Init(); err != nil {
a.suspendMutex.Unlock()
a.Unlock() a.Unlock()
panic(err) panic(err)
} }
@ -222,7 +221,6 @@ func (a *Application) Suspend(f func()) bool {
a.Draw() a.Draw()
// Continue application loop. // Continue application loop.
a.suspendMutex.Unlock()
return true return true
} }

Loading…
Cancel
Save