diff --git a/lib/base/application.cpp b/lib/base/application.cpp index df93710b7..e706932e8 100644 --- a/lib/base/application.cpp +++ b/lib/base/application.cpp @@ -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 diff --git a/lib/base/process.cpp b/lib/base/process.cpp index 71454b5ac..50c99f60a 100644 --- a/lib/base/process.cpp +++ b/lib/base/process.cpp @@ -413,12 +413,11 @@ static pid_t ProcessSpawn(const std::vector& 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];