diff options
| author | Marko Kreen | 2007-06-13 21:08:29 +0000 |
|---|---|---|
| committer | Marko Kreen | 2007-06-13 21:08:29 +0000 |
| commit | d61d3e4cd07222ce89923b153f64686727347791 (patch) | |
| tree | d700ec25c02ed2bc457ce6dc0a2e667f4e57878a /src/janitor.c | |
| parent | 84b7f36965e8aef0448e75f72553c29bf0b0612e (diff) | |
pause/resume specific database
Diffstat (limited to 'src/janitor.c')
| -rw-r--r-- | src/janitor.c | 12 |
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; } } |
