To be able to deliberately reconnect to the database, in case of
error, we need functions which actually work with dbh, rather than
simply the refcount.

No functional change as yet.

Signed-off-by: Ian Jackson <ian.jack...@eu.citrix.com>
---
 tcl/JobDB-Executive.tcl | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/tcl/JobDB-Executive.tcl b/tcl/JobDB-Executive.tcl
index 3ad3693..da9b7e9 100644
--- a/tcl/JobDB-Executive.tcl
+++ b/tcl/JobDB-Executive.tcl
@@ -85,6 +85,17 @@ proc db-open {} {
 
     if {$dbusers > 0} { incr dbusers; return }
 
+    db-ensure-open
+    incr dbusers
+}
+proc db-close {} {
+    variable dbusers
+    incr dbusers -1
+    if {$dbusers > 0} return
+    if {$dbusers} { error "$dbusers ?!" }
+    db-ensure-closed
+}
+proc db-ensure-open {} {
     set pl {
        use Osstest;
        use Osstest::Executive;
@@ -98,13 +109,8 @@ proc db-open {} {
     # is whitespace-separated.
     regsub -all {;} $db_pg_dsn { } conninfo
     pg_connect -conninfo $conninfo -connhandle dbh
-    incr dbusers
 }
-proc db-close {} {
-    variable dbusers
-    incr dbusers -1
-    if {$dbusers > 0} return
-    if {$dbusers} { error "$dbusers ?!" }
+proc db-ensure-closed {} {
     pg_disconnect dbh
 }
 
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to