aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--x0vncserver/PollingScheduler.cxx6
-rw-r--r--x0vncserver/PollingScheduler.h8
-rw-r--r--x0vncserver/x0vncserver.cxx2
3 files changed, 13 insertions, 3 deletions
diff --git a/x0vncserver/PollingScheduler.cxx b/x0vncserver/PollingScheduler.cxx
index 2d284916..ee315967 100644
--- a/x0vncserver/PollingScheduler.cxx
+++ b/x0vncserver/PollingScheduler.cxx
@@ -17,7 +17,7 @@
*/
//
-// PollingScheduler.cxx
+// PollingScheduler class implementation.
//
#include <x0vncserver/PollingScheduler.h>
@@ -58,3 +58,7 @@ int PollingScheduler::millisRemaining() const
return (m_interval - elapsed);
}
+bool PollingScheduler::goodTimeToPoll() const
+{
+ return (millisRemaining() == 0);
+}
diff --git a/x0vncserver/PollingScheduler.h b/x0vncserver/PollingScheduler.h
index 777a6650..ba7b27dd 100644
--- a/x0vncserver/PollingScheduler.h
+++ b/x0vncserver/PollingScheduler.h
@@ -17,7 +17,10 @@
*/
//
-// PollingScheduler.h
+// PollingScheduler class. It is used for deciding when to start new
+// polling pass, and how much time it is ok to wait before starting.
+// PollingScheduler is provided a desired polling interval and watches
+// for actual intervals between past polling cycles.
//
#ifndef __POLLINGSCHEDULER_H__
@@ -43,6 +46,9 @@ public:
// This function estimates time remaining before new polling pass.
int millisRemaining() const;
+ // This function tells if it's ok to start polling pass right now.
+ bool goodTimeToPoll() const;
+
protected:
bool initialState;
diff --git a/x0vncserver/x0vncserver.cxx b/x0vncserver/x0vncserver.cxx
index 27c130a4..d179d943 100644
--- a/x0vncserver/x0vncserver.cxx
+++ b/x0vncserver/x0vncserver.cxx
@@ -485,7 +485,7 @@ int main(int argc, char** argv)
server.checkTimeouts();
- if (sched.millisRemaining() <= 0) {
+ if (sched.goodTimeToPoll()) {
adjustPollingCycle(&dynPollingCycle, &cpumon);
sched.setInterval(dynPollingCycle);
sched.newPass();