changeset 18940:ec912a6039f5

lib-master: If idle-die callback returns FALSE, notify master that we don't want to die. This avoids the master thinking that we're ignoring its idle-kill signal and logging an error.
author Timo Sirainen <tss@iki.fi>
date Mon, 17 Aug 2015 12:53:52 +0300
parents 10df63e74ed6
children 622ce8582a8e
files src/lib-master/master-service.c
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-master/master-service.c	Mon Aug 17 12:51:43 2015 +0300
+++ b/src/lib-master/master-service.c	Mon Aug 17 12:53:52 2015 +0300
@@ -45,6 +45,8 @@
 
 static void master_service_io_listeners_close(struct master_service *service);
 static void master_service_refresh_login_state(struct master_service *service);
+static void
+master_status_send(struct master_service *service, bool important_update);
 
 const char *master_service_getopt_string(void)
 {
@@ -73,8 +75,12 @@
 			return;
 
 		if (service->idle_die_callback != NULL &&
-		    !service->idle_die_callback())
+		    !service->idle_die_callback()) {
+			/* we don't want to die - send a notification to master
+			   so it doesn't think we're ignoring it completely. */
+			master_status_send(service, FALSE);
 			return;
+		}
 	}
 
 	service->killed = TRUE;