checker: Fix incorrect wait time when first service is non-authoritative.

This commit is contained in:
Gunnar Beutner 2013-09-12 16:36:18 +02:00
parent eb7d9e96f8
commit cbc53db5c1
1 changed files with 7 additions and 5 deletions

View File

@ -83,6 +83,12 @@ void CheckerComponent::CheckThreadProc(void)
CheckTimeView::iterator it = idx.begin();
Service::Ptr service = *it;
if (!service->HasAuthority("checker")) {
idx.erase(it);
idx.insert(service);
continue;
}
if (!service->IsActive()) {
idx.erase(it);
continue;
@ -90,11 +96,6 @@ void CheckerComponent::CheckThreadProc(void)
double wait = service->GetNextCheck() - Utility::GetTime();
bool authoritative = service->HasAuthority("checker");
if (!authoritative)
wait = 60;
if (wait > 0) {
/* Make sure the service we just examined can be destroyed while we're waiting. */
service.reset();
@ -110,6 +111,7 @@ void CheckerComponent::CheckThreadProc(void)
bool forced = service->GetForceNextCheck();
bool check = true;
bool authoritative = service->HasAuthority("checker");
if (!forced) {
if (!service->GetEnableActiveChecks()) {