From 3981bbd37e1fa3f18c1b09e17cb74e1884d80f05 Mon Sep 17 00:00:00 2001 From: df Date: Sun, 18 Oct 2020 15:48:07 +0000 Subject: [PATCH] Retry access in case the settings database is locked --- webif/lib/settings.class | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/webif/lib/settings.class b/webif/lib/settings.class index 4251fa6..5b56185 100644 --- a/webif/lib/settings.class +++ b/webif/lib/settings.class @@ -56,10 +56,11 @@ class settings { proc {settings _safer_query} { queryText args } { global settingsdb + # allow 5 (too many?) tries with 1s (too long?) delay to get access - for {set lockCnt 5} {} {sleep 1} { + for {set lockCnt 5} {true} {sleep 1} { try { - $settingsdb query $queryText {*}$args + return [$settingsdb query $queryText {*}$arg] } on error {msg opts} { if {[string first "database is locked" $msg] >= 0 && [incr lockCnt -1] > 0} { continue @@ -122,7 +123,7 @@ settings method _nval_setting {name {val -1}} { if {$val == -1} { # Get - set res [settings::_safer_query " + set res [settings _safer_query " select nval from settings where name = '$name' "] @@ -132,7 +133,7 @@ settings method _nval_setting {name {val -1}} { return 0 } else { # Set - settings::_safer_query " + settings _safer_query " replace into settings(name,nval) values('$name', $val) " @@ -144,7 +145,7 @@ settings method _tval_setting {name {val -1} {def 0}} { if {$val eq "-1"} { # Get - set res [settings::_safer_query " + set res [settings _safer_query " select tval from settings where name = '$name' "] @@ -154,7 +155,7 @@ settings method _tval_setting {name {val -1} {def 0}} { return $def } else { # Set - settings::_safer_query " + settings _safer_query " replace into settings(name,tval) values('$name', '%s') " $val