Browse Source

Handle failed generator startup as a fatal startup, sending listener a shutdown message and adding shutdown parsing

master
Con Kolivas 11 years ago
parent
commit
4ab9120e61
  1. 13
      src/ckpool.c
  2. 4
      src/generator.c

13
src/ckpool.c

@ -29,10 +29,12 @@ static void *listener(void *arg)
{
proc_instance_t *pi = (proc_instance_t *)arg;
unixsock_t *us = &pi->us;
char *buf = NULL;
int sockd;
rename_proc(pi->sockname);
retry:
dealloc(buf);
sockd = accept(us->sockd, NULL, NULL);
if (sockd < 0) {
if (interrupted())
@ -41,9 +43,16 @@ retry:
goto out;
}
/* Insert parsing and repeat code here */
out:
if (sockd >= 0)
buf = recv_unix_msg(sockd);
if (!strncasecmp(buf, "shutdown", 8)) {
LOGWARNING("Listener received shutdown message, terminating ckpool");
close(sockd);
goto out;
}
close(sockd);
goto retry;
out:
dealloc(buf);
close_unix_socket(us->sockd, us->path);
return NULL;
}

4
src/generator.c

@ -147,5 +147,9 @@ out:
dealloc(userpass);
LOGINFO("%s generator exiting with return code %d", ckp->name, ret);
if (ret) {
send_proc(&ckp->main, "shutdown");
sleep(1);
}
return ret;
}

Loading…
Cancel
Save