summaryrefslogtreecommitdiff
path: root/src/janitor.c
diff options
context:
space:
mode:
authorMarko Kreen2007-06-13 21:08:29 +0000
committerMarko Kreen2007-06-13 21:08:29 +0000
commitd61d3e4cd07222ce89923b153f64686727347791 (patch)
treed700ec25c02ed2bc457ce6dc0a2e667f4e57878a /src/janitor.c
parent84b7f36965e8aef0448e75f72553c29bf0b0612e (diff)
pause/resume specific database
Diffstat (limited to 'src/janitor.c')
-rw-r--r--src/janitor.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/janitor.c b/src/janitor.c
index bda506d..a2b5286 100644
--- a/src/janitor.c
+++ b/src/janitor.c
@@ -236,6 +236,7 @@ void per_loop_maint(void)
List *item;
PgPool *pool;
int active = 0;
+ int partial_pause = 0;
/* dont touch anything if takeover is in progress */
if (cf_reboot)
@@ -247,7 +248,11 @@ void per_loop_maint(void)
continue;
switch (cf_pause_mode) {
case P_NONE:
- per_loop_activate(pool);
+ if (pool->db->db_paused) {
+ partial_pause = 1;
+ active += per_loop_pause(pool);
+ } else
+ per_loop_activate(pool);
break;
case P_PAUSE:
active += per_loop_pause(pool);
@@ -264,7 +269,10 @@ void per_loop_maint(void)
case P_PAUSE:
if (!active)
admin_pause_done();
- default:
+ break;
+ case P_NONE:
+ if (partial_pause && !active)
+ admin_pause_done();
break;
}
}