summaryrefslogtreecommitdiffstats
path: root/src/concurrent/qtconcurrentthreadengine.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/concurrent/qtconcurrentthreadengine.h')
-rw-r--r--src/concurrent/qtconcurrentthreadengine.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/concurrent/qtconcurrentthreadengine.h b/src/concurrent/qtconcurrentthreadengine.h
index 4e7e8d0b81..82bff5fb3a 100644
--- a/src/concurrent/qtconcurrentthreadengine.h
+++ b/src/concurrent/qtconcurrentthreadengine.h
@@ -99,14 +99,19 @@ public:
void setProgressValue(int progress);
void setProgressRange(int minimum, int maximum);
void acquireBarrierSemaphore();
- void reportIfPausedDone() const;
+ void reportIfSuspensionDone() const;
protected: // The user overrides these:
virtual void start() {}
virtual void finish() {}
virtual ThreadFunctionResult threadFunction() { return ThreadFinished; }
- virtual bool shouldStartThread() { return futureInterface ? !futureInterface->isPaused() : true; }
- virtual bool shouldThrottleThread() { return futureInterface ? futureInterface->isPaused() : false; }
+ virtual bool shouldStartThread() { return !shouldThrottleThread(); }
+ virtual bool shouldThrottleThread()
+ {
+ return futureInterface ? (futureInterface->isSuspending() || futureInterface->isSuspended())
+ : false;
+ }
+
private:
bool startThreadInternal();
void startThreads();