mirror of https://github.com/Icinga/icinga2.git
Don't abuse goto for building simple loops
This commit is contained in:
parent
4339240b46
commit
ac354f9e80
|
@ -309,52 +309,48 @@ void Application::RunEventLoop()
|
|||
|
||||
double lastLoop = Utility::GetTime();
|
||||
|
||||
mainloop:
|
||||
while (!m_ShuttingDown && !m_RequestRestart) {
|
||||
/* Watches for changes to the system time. Adjusts timers if necessary. */
|
||||
Utility::Sleep(2.5);
|
||||
|
||||
if (m_RequestReopenLogs) {
|
||||
Log(LogNotice, "Application", "Reopening log files");
|
||||
m_RequestReopenLogs = false;
|
||||
OnReopenLogs();
|
||||
}
|
||||
|
||||
double now = Utility::GetTime();
|
||||
double timeDiff = lastLoop - now;
|
||||
while (!m_ShuttingDown) {
|
||||
if (m_RequestRestart) {
|
||||
m_RequestRestart = false; // we are now handling the request, once is enough
|
||||
|
||||
#ifdef HAVE_SYSTEMD
|
||||
sd_notify(0, "WATCHDOG=1");
|
||||
sd_notify(0, "RELOADING=1");
|
||||
#endif /* HAVE_SYSTEMD */
|
||||
|
||||
if (std::fabs(timeDiff) > 15) {
|
||||
/* We made a significant jump in time. */
|
||||
Log(LogInformation, "Application")
|
||||
<< "We jumped "
|
||||
<< (timeDiff < 0 ? "forward" : "backward")
|
||||
<< " in time: " << std::fabs(timeDiff) << " seconds";
|
||||
// are we already restarting? ignore request if we already are
|
||||
if (!l_Restarting) {
|
||||
l_Restarting = true;
|
||||
m_ReloadProcess = StartReloadProcess();
|
||||
}
|
||||
} else {
|
||||
/* Watches for changes to the system time. Adjusts timers if necessary. */
|
||||
Utility::Sleep(2.5);
|
||||
|
||||
Timer::AdjustTimers(-timeDiff);
|
||||
}
|
||||
if (m_RequestReopenLogs) {
|
||||
Log(LogNotice, "Application", "Reopening log files");
|
||||
m_RequestReopenLogs = false;
|
||||
OnReopenLogs();
|
||||
}
|
||||
|
||||
lastLoop = now;
|
||||
}
|
||||
|
||||
if (m_RequestRestart) {
|
||||
m_RequestRestart = false; // we are now handling the request, once is enough
|
||||
double now = Utility::GetTime();
|
||||
double timeDiff = lastLoop - now;
|
||||
|
||||
#ifdef HAVE_SYSTEMD
|
||||
sd_notify(0, "RELOADING=1");
|
||||
sd_notify(0, "WATCHDOG=1");
|
||||
#endif /* HAVE_SYSTEMD */
|
||||
|
||||
// are we already restarting? ignore request if we already are
|
||||
if (l_Restarting)
|
||||
goto mainloop;
|
||||
if (std::fabs(timeDiff) > 15) {
|
||||
/* We made a significant jump in time. */
|
||||
Log(LogInformation, "Application")
|
||||
<< "We jumped "
|
||||
<< (timeDiff < 0 ? "forward" : "backward")
|
||||
<< " in time: " << std::fabs(timeDiff) << " seconds";
|
||||
|
||||
l_Restarting = true;
|
||||
m_ReloadProcess = StartReloadProcess();
|
||||
Timer::AdjustTimers(-timeDiff);
|
||||
}
|
||||
|
||||
goto mainloop;
|
||||
lastLoop = now;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_SYSTEMD
|
||||
|
|
|
@ -413,12 +413,11 @@ static pid_t ProcessSpawn(const std::vector<String>& arguments, const Dictionary
|
|||
|
||||
msg.msg_controllen = cmsg->cmsg_len;
|
||||
|
||||
send_message:
|
||||
while (sendmsg(l_ProcessControlFD, &msg, 0) < 0)
|
||||
StartSpawnProcessHelper();
|
||||
|
||||
if (send(l_ProcessControlFD, jrequest.CStr(), jrequest.GetLength(), 0) < 0)
|
||||
goto send_message;
|
||||
do {
|
||||
while (sendmsg(l_ProcessControlFD, &msg, 0) < 0) {
|
||||
StartSpawnProcessHelper();
|
||||
}
|
||||
} while (send(l_ProcessControlFD, jrequest.CStr(), jrequest.GetLength(), 0) < 0);
|
||||
|
||||
char buf[4096];
|
||||
|
||||
|
@ -450,12 +449,11 @@ static int ProcessKill(pid_t pid, int signum)
|
|||
|
||||
boost::mutex::scoped_lock lock(l_ProcessControlMutex);
|
||||
|
||||
send_message:
|
||||
while (send(l_ProcessControlFD, &length, sizeof(length), 0) < 0)
|
||||
StartSpawnProcessHelper();
|
||||
|
||||
if (send(l_ProcessControlFD, jrequest.CStr(), jrequest.GetLength(), 0) < 0)
|
||||
goto send_message;
|
||||
do {
|
||||
while (send(l_ProcessControlFD, &length, sizeof(length), 0) < 0) {
|
||||
StartSpawnProcessHelper();
|
||||
}
|
||||
} while (send(l_ProcessControlFD, jrequest.CStr(), jrequest.GetLength(), 0) < 0);
|
||||
|
||||
char buf[4096];
|
||||
|
||||
|
@ -482,12 +480,11 @@ static int ProcessWaitPID(pid_t pid, int *status)
|
|||
|
||||
boost::mutex::scoped_lock lock(l_ProcessControlMutex);
|
||||
|
||||
send_message:
|
||||
while (send(l_ProcessControlFD, &length, sizeof(length), 0) < 0)
|
||||
StartSpawnProcessHelper();
|
||||
|
||||
if (send(l_ProcessControlFD, jrequest.CStr(), jrequest.GetLength(), 0) < 0)
|
||||
goto send_message;
|
||||
do {
|
||||
while (send(l_ProcessControlFD, &length, sizeof(length), 0) < 0) {
|
||||
StartSpawnProcessHelper();
|
||||
}
|
||||
} while (send(l_ProcessControlFD, jrequest.CStr(), jrequest.GetLength(), 0) < 0);
|
||||
|
||||
char buf[4096];
|
||||
|
||||
|
|
Loading…
Reference in New Issue