+func (si *SetupInstruments) EnableMutexMonitoring() {
+ lib.Logger.Println("EnableMutexMonitoring")
+ sql_match := "wait/synch/mutex/%"
+ collecting := "Collecting setup_instruments wait/synch/mutex configuration settings"
+ updating := "Updating setup_instruments configuration for: wait/synch/mutex"
+
+ si.Configure(sql_match, collecting, updating)
+ lib.Logger.Println("EnableMutexMonitoring finishes")
+}
+
+// return true if the error is not in the expected list
+func error_in_expected_list(actual_error string, expected_errors []string) bool {
+ lib.Logger.Println("checking if", actual_error, "is in", expected_errors)
+ e := actual_error[0:11]
+ expected_error := false
+ for i := range expected_errors {
+ if e == expected_errors[i] {
+ lib.Logger.Println("found an expected error", expected_errors[i])
+ expected_error = true
+ break
+ }
+ }
+ lib.Logger.Println("returning", expected_error)
+ return expected_error
+}
+
+// generic routine (now) to update some rows in setup instruments
+func (si *SetupInstruments) Configure(sql_match string, collecting, updating string) {
+ lib.Logger.Println(fmt.Sprintf("Configure(%q,%q,%q)", sql_match, collecting, updating))
+ // skip if we've tried and failed
+ if si.update_tried && !si.update_succeeded {
+ lib.Logger.Println("Configure() - Skipping further configuration")
+ return
+ }