Added ATHEIST environment variable to disable angel process in Controller

This commit is contained in:
Thulinma 2022-03-02 15:04:51 +01:00
parent 94b6976dfa
commit 5bd58dff03
2 changed files with 21 additions and 20 deletions

View file

@ -124,8 +124,26 @@ static unsigned long mix(unsigned long a, unsigned long b, unsigned long c){
return c;
}
void handleUSR1(int signum, siginfo_t *sigInfo, void *ignore){
Controller::Log("CONF", "USR1 received - restarting controller");
Util::Config::is_restarting = true;
raise(SIGINT); // trigger restart
}
void handleUSR1Parent(int signum, siginfo_t *sigInfo, void *ignore){
Controller::Log("CONF", "USR1 received - passing on to child");
Util::Config::is_restarting = true;
}
///\brief The main loop for the controller.
int main_loop(int argc, char **argv){
{
struct sigaction new_action;
new_action.sa_sigaction = handleUSR1;
sigemptyset(&new_action.sa_mask);
new_action.sa_flags = 0;
sigaction(SIGUSR1, &new_action, NULL);
}
Controller::isTerminal = Controller::isColorized = isatty(fileno(stdout));
if (!isatty(fileno(stdin))){Controller::isTerminal = false;}
Controller::Storage = JSON::fromFile("config.json");
@ -621,17 +639,6 @@ int main_loop(int argc, char **argv){
return 0;
}
void handleUSR1(int signum, siginfo_t *sigInfo, void *ignore){
Controller::Log("CONF", "USR1 received - restarting controller");
Util::Config::is_restarting = true;
raise(SIGINT); // trigger restart
}
void handleUSR1Parent(int signum, siginfo_t *sigInfo, void *ignore){
Controller::Log("CONF", "USR1 received - passing on to child");
Util::Config::is_restarting = true;
}
///\brief The controller angel process.
/// Starts a forked main_loop in a loop. Yes, you read that right.
int main(int argc, char **argv){
@ -646,19 +653,13 @@ int main(int argc, char **argv){
Controller::conf = Util::Config(argv[0]);
Controller::conf.activate();
if (getenv("ATHEIST")){return main_loop(argc, argv);}
uint64_t reTimer = 0;
while (Controller::conf.is_active){
Util::Procs::fork_prepare();
pid_t pid = fork();
if (pid == 0){
Util::Procs::fork_complete();
{
struct sigaction new_action;
new_action.sa_sigaction = handleUSR1;
sigemptyset(&new_action.sa_mask);
new_action.sa_flags = 0;
sigaction(SIGUSR1, &new_action, NULL);
}
return main_loop(argc, argv);
}
Util::Procs::fork_complete();

View file

@ -375,8 +375,8 @@ namespace Mist{
config->activate();
if (getenv("NOFORK")){
INFO_MSG("Not using angel process due to NOFORK environment variable");
if (getenv("NOFORK") || getenv("ATHEIST")){
INFO_MSG("Not using angel process due to ATHEIST environment variable");
if (playerLock){
// Re-init streamStatus, previously closed
char pageName[NAME_BUFFER_SIZE];