Adapt to collect stage information
[pstop.git] / main.go
diff --git a/main.go b/main.go
index 94c0036..0197e83 100644 (file)
--- a/main.go
+++ b/main.go
@@ -116,6 +116,7 @@ func usage() {
 // be found.
 func validate_mysql_version(dbh *sql.DB) error {
        var tables = [...]string{
+               "performance_schema.events_waits_summary_global_by_event_name",
                "performance_schema.file_summary_by_instance",
                "performance_schema.table_io_waits_summary_by_table",
                "performance_schema.table_lock_waits_summary_by_table",
@@ -233,13 +234,11 @@ func main() {
        signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
 
        state.Setup(dbh)
-
-       finished := false
-       for !finished {
+       for !state.Finished() {
                select {
                case <-done:
                        fmt.Println("exiting")
-                       finished = true
+                       state.SetFinished()
                case sig := <-sigChan:
                        fmt.Println("Caught a signal", sig)
                        done <- struct{}{}
@@ -253,7 +252,7 @@ func main() {
                        case termbox.EventKey: // actions depend on key
                                switch event.Key {
                                case termbox.KeyCtrlZ, termbox.KeyCtrlC, termbox.KeyEsc:
-                                       finished = true
+                                       state.SetFinished()
                                case termbox.KeyArrowLeft: // left arrow change to previous display mode
                                        state.DisplayPrevious()
                                        state.Display()
@@ -271,7 +270,7 @@ func main() {
                                case 'h', '?': // help
                                        state.SetHelp(!state.Help())
                                case 'q': // quit
-                                       finished = true
+                                       state.SetFinished()
                                case 't': // toggle between absolute/relative statistics
                                        state.SetWantRelativeStats(!state.WantRelativeStats())
                                        state.Display()