Client: use TimeoutMonitor to track connection timeout

Don't use a global loop over the whole client list.
This commit is contained in:
Max Kellermann
2013-01-16 21:39:40 +01:00
parent cab84af72e
commit b0bbb8b693
6 changed files with 22 additions and 78 deletions

View File

@@ -43,7 +43,8 @@ Client::IdleNotify()
}
client_puts(this, "OK\n");
g_timer_start(last_activity);
TimeoutMonitor::ScheduleSeconds(client_timeout);
}
void
@@ -83,6 +84,9 @@ Client::IdleWait(unsigned flags)
if (idle_flags & idle_subscriptions) {
IdleNotify();
return true;
} else
} else {
/* disable timeouts while in "idle" */
TimeoutMonitor::Cancel();
return false;
}
}