]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
master: When killing idle processes, don't kill the service's last one.
authorTimo Sirainen <tss@iki.fi>
Tue, 8 Sep 2009 22:05:50 +0000 (18:05 -0400)
committerTimo Sirainen <tss@iki.fi>
Tue, 8 Sep 2009 22:05:50 +0000 (18:05 -0400)
--HG--
branch : HEAD

src/master/service-monitor.c

index ccb50b1b116383e7dd5bacad6eca1c118e7813f0..dd10b33370d369ed1c43cc27a70c17b5f9ce47f8 100644 (file)
@@ -25,8 +25,10 @@ static void service_process_kill_idle(struct service_process *process)
 {
        struct service *service = process->service;
 
-       if (service->process_avail <= service->set->process_min_avail) {
-               /* we don't have any extra idling processes */
+       if (service->process_avail <= service->set->process_min_avail ||
+           service->process_avail == 1) {
+               /* we don't have any extra idling processes. and if there's
+                  no minimum limit, never kill the last process anyway */
                timeout_remove(&process->to_idle);
        } else {
                if (kill(process->pid, SIGINT) < 0 && errno != ESRCH) {