Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/windirstat.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames C. Norris <jnorris@gmail.com>2016-10-27 08:27:36 +0300
committerJames C. Norris <jnorris@gmail.com>2016-10-27 08:27:36 +0300
commitc439f261300c13786094a164936efe9991ab6c06 (patch)
treea53992a4c05f2d97fea67473368c0eb22d8c44c4 /windirstat/windirstat.cpp
parentf1a5430b9467ff766f8a742ead1b410676c6da1d (diff)
Add a class CWorkLimiter that isolates limiting work duration
CWorkLimiter limits the amount of work done on any idle cycle, exiting when a set amount of ticks has elapsed or when an input event is pending on the message queue.
Diffstat (limited to 'windirstat/windirstat.cpp')
-rw-r--r--windirstat/windirstat.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/windirstat/windirstat.cpp b/windirstat/windirstat.cpp
index edc9df6..b62289c 100644
--- a/windirstat/windirstat.cpp
+++ b/windirstat/windirstat.cpp
@@ -29,6 +29,7 @@
#include "dirstatdoc.h"
#include "graphview.h"
#include "osspecific.h"
+#include "WorkLimiter.h"
#include <Dbghelp.h> // for mini dumps
#ifdef _DEBUG
@@ -737,7 +738,9 @@ BOOL CDirstatApp::OnIdle(LONG lCount)
bool more = false;
CDirstatDoc *doc = GetDocument();
- if((doc) && (!doc->Work(600)))
+ CWorkLimiter limiter;
+ limiter.Start(600);
+ if((doc) && (!doc->Work(&limiter)))
{
more = true;
}