Improved the interface of the PollingScheduler class, added some
documentation in comments.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@494 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/x0vncserver/PollingScheduler.cxx b/x0vncserver/PollingScheduler.cxx
index 2d28491..ee31596 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 @@
return (m_interval - elapsed);
}
+bool PollingScheduler::goodTimeToPoll() const
+{
+ return (millisRemaining() == 0);
+}
diff --git a/x0vncserver/PollingScheduler.h b/x0vncserver/PollingScheduler.h
index 777a665..ba7b27d 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 @@
// 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 27c130a..d179d94 100644
--- a/x0vncserver/x0vncserver.cxx
+++ b/x0vncserver/x0vncserver.cxx
@@ -485,7 +485,7 @@
server.checkTimeouts();
- if (sched.millisRemaining() <= 0) {
+ if (sched.goodTimeToPoll()) {
adjustPollingCycle(&dynPollingCycle, &cpumon);
sched.setInterval(dynPollingCycle);
sched.newPass();