|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST PATCH 23/33] tcl daemons: db-ensure-open, -close: Make idempotent
Track whether we think the connection is open in dbopen.
It is now therefore OK to call db-ensure-open and db-ensure-closed in
other contexts.
Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
tcl/JobDB-Executive.tcl | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/tcl/JobDB-Executive.tcl b/tcl/JobDB-Executive.tcl
index da9b7e9..1763b69 100644
--- a/tcl/JobDB-Executive.tcl
+++ b/tcl/JobDB-Executive.tcl
@@ -79,6 +79,7 @@ proc set-flight {} {
}
variable dbusers 0
+variable dbopen 0 ;# 1 means known to be open and good; 0 might mean broken
proc db-open {} {
variable dbusers
@@ -96,6 +97,11 @@ proc db-close {} {
db-ensure-closed
}
proc db-ensure-open {} {
+ variable dbopen
+
+ if {$dbopen} return
+ catch { db-ensure-closed } ;# clean up any detritus
+
set pl {
use Osstest;
use Osstest::Executive;
@@ -109,8 +115,12 @@ proc db-ensure-open {} {
# is whitespace-separated.
regsub -all {;} $db_pg_dsn { } conninfo
pg_connect -conninfo $conninfo -connhandle dbh
+
+ set dbopen 1
}
proc db-ensure-closed {} {
+ variable dbopen
+ set dbopen 0
pg_disconnect dbh
}
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |