thread/qfutureinterface.cpp

Switch to Source codePreprocessed file
LineSource CodeCoverage
1 -
2 -
3 -
4 -
5 -
6 -
7 -
8enum { -
9 MaxProgressEmitsPerSecond = 25 -
10}; -
11 -
12QFutureInterfaceBase::QFutureInterfaceBase(State initialState) -
13 : d(new QFutureInterfaceBasePrivate(initialState)) -
14{ }
executed: }
Execution Count:584761
584761
15 -
16QFutureInterfaceBase::QFutureInterfaceBase(const QFutureInterfaceBase &other) -
17 : d(other.d) -
18{ -
19 d->refCount.ref(); -
20}
executed: }
Execution Count:615827
615827
21 -
22QFutureInterfaceBase::~QFutureInterfaceBase() -
23{ -
24 if (!d->refCount.deref())
evaluated: !d->refCount.deref()
TRUEFALSE
yes
Evaluation Count:585709
yes
Evaluation Count:615878
585709-615878
25 delete d;
executed: delete d;
Execution Count:585165
585165
26}
executed: }
Execution Count:1195600
1195600
27 -
28void QFutureInterfaceBase::cancel() -
29{ -
30 QMutexLocker locker(&d->m_mutex); -
31 if (d->state & Canceled)
evaluated: d->state & Canceled
TRUEFALSE
yes
Evaluation Count:5
yes
Evaluation Count:1112
5-1112
32 return;
executed: return;
Execution Count:5
5
33 -
34 d->state = State((d->state & ~Paused) | Canceled); -
35 d->waitCondition.wakeAll(); -
36 d->pausedWaitCondition.wakeAll(); -
37 d->sendCallOut(QFutureCallOutEvent(QFutureCallOutEvent::Canceled)); -
38}
executed: }
Execution Count:1112
1112
39 -
40void QFutureInterfaceBase::setPaused(bool paused) -
41{ -
42 QMutexLocker locker(&d->m_mutex); -
43 if (paused) {
evaluated: paused
TRUEFALSE
yes
Evaluation Count:9
yes
Evaluation Count:9
9
44 d->state = State(d->state | Paused); -
45 d->sendCallOut(QFutureCallOutEvent(QFutureCallOutEvent::Paused)); -
46 } else {
executed: }
Execution Count:9
9
47 d->state = State(d->state & ~Paused); -
48 d->pausedWaitCondition.wakeAll(); -
49 d->sendCallOut(QFutureCallOutEvent(QFutureCallOutEvent::Resumed)); -
50 }
executed: }
Execution Count:9
9
51} -
52 -
53void QFutureInterfaceBase::togglePaused() -
54{ -
55 QMutexLocker locker(&d->m_mutex); -
56 if (d->state & Paused) {
evaluated: d->state & Paused
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:7
1-7
57 d->state = State(d->state & ~Paused); -
58 d->pausedWaitCondition.wakeAll(); -
59 d->sendCallOut(QFutureCallOutEvent(QFutureCallOutEvent::Resumed)); -
60 } else {
executed: }
Execution Count:1
1
61 d->state = State(d->state | Paused); -
62 d->sendCallOut(QFutureCallOutEvent(QFutureCallOutEvent::Paused)); -
63 }
executed: }
Execution Count:7
7
64} -
65 -
66void QFutureInterfaceBase::setThrottled(bool enable) -
67{ -
68 -
69 if ((enable && (d->state & Throttled)) || (!enable && !(d->state & Throttled)))
evaluated: enable
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:64
partially evaluated: (d->state & Throttled)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
evaluated: !enable
TRUEFALSE
yes
Evaluation Count:64
yes
Evaluation Count:2
evaluated: !(d->state & Throttled)
TRUEFALSE
yes
Evaluation Count:60
yes
Evaluation Count:4
0-64
70 return;
executed: return;
Execution Count:60
60
71 -
72 -
73 QMutexLocker lock(&d->m_mutex); -
74 if (enable) {
evaluated: enable
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:4
2-4
75 d->state = State(d->state | Throttled); -
76 } else {
executed: }
Execution Count:2
2
77 d->state = State(d->state & ~Throttled); -
78 if (!(d->state & Paused))
partially evaluated: !(d->state & Paused)
TRUEFALSE
yes
Evaluation Count:4
no
Evaluation Count:0
0-4
79 d->pausedWaitCondition.wakeAll();
executed: d->pausedWaitCondition.wakeAll();
Execution Count:4
4
80 }
executed: }
Execution Count:4
4
81} -
82 -
83 -
84bool QFutureInterfaceBase::isRunning() const -
85{ -
86 return queryState(Running);
executed: return queryState(Running);
Execution Count:47
47
87} -
88 -
89bool QFutureInterfaceBase::isStarted() const -
90{ -
91 return queryState(Started);
executed: return queryState(Started);
Execution Count:26
26
92} -
93 -
94bool QFutureInterfaceBase::isCanceled() const -
95{ -
96 return queryState(Canceled);
executed: return queryState(Canceled);
Execution Count:1278110
1278110
97} -
98 -
99bool QFutureInterfaceBase::isFinished() const -
100{ -
101 return queryState(Finished);
executed: return queryState(Finished);
Execution Count:166
166
102} -
103 -
104bool QFutureInterfaceBase::isPaused() const -
105{ -
106 return queryState(Paused);
executed: return queryState(Paused);
Execution Count:50475
50475
107} -
108 -
109bool QFutureInterfaceBase::isThrottled() const -
110{ -
111 return queryState(Throttled);
executed: return queryState(Throttled);
Execution Count:7
7
112} -
113 -
114bool QFutureInterfaceBase::isResultReadyAt(int index) const -
115{ -
116 QMutexLocker lock(&d->m_mutex); -
117 return d->internal_isResultReadyAt(index);
executed: return d->internal_isResultReadyAt(index);
Execution Count:15004
15004
118} -
119 -
120bool QFutureInterfaceBase::waitForNextResult() -
121{ -
122 QMutexLocker lock(&d->m_mutex); -
123 return d->internal_waitForNextResult();
never executed: return d->internal_waitForNextResult();
0
124} -
125 -
126void QFutureInterfaceBase::waitForResume() -
127{ -
128 -
129 if ((d->state & Paused) == false || (d->state & Canceled))
partially evaluated: (d->state & Paused) == false
TRUEFALSE
yes
Evaluation Count:23984
no
Evaluation Count:0
never evaluated: (d->state & Canceled)
0-23984
130 return;
executed: return;
Execution Count:23857
23857
131 -
132 QMutexLocker lock(&d->m_mutex); -
133 if ((d->state & Paused) == false || (d->state & Canceled))
never evaluated: (d->state & Paused) == false
never evaluated: (d->state & Canceled)
0
134 return;
never executed: return;
0
135 -
136 -
137 QThreadPool::globalInstance()->releaseThread(); -
138 -
139 d->pausedWaitCondition.wait(&d->m_mutex); -
140 -
141 QThreadPool::globalInstance()->reserveThread(); -
142}
never executed: }
0
143 -
144int QFutureInterfaceBase::progressValue() const -
145{ -
146 return d->m_progressValue;
executed: return d->m_progressValue;
Execution Count:17
17
147} -
148 -
149int QFutureInterfaceBase::progressMinimum() const -
150{ -
151 return d->m_progressMinimum;
executed: return d->m_progressMinimum;
Execution Count:12
12
152} -
153 -
154int QFutureInterfaceBase::progressMaximum() const -
155{ -
156 return d->m_progressMaximum;
executed: return d->m_progressMaximum;
Execution Count:12
12
157} -
158 -
159int QFutureInterfaceBase::resultCount() const -
160{ -
161 QMutexLocker lock(&d->m_mutex); -
162 return d->internal_resultCount();
executed: return d->internal_resultCount();
Execution Count:3915
3915
163} -
164 -
165QString QFutureInterfaceBase::progressText() const -
166{ -
167 QMutexLocker locker(&d->m_mutex); -
168 return d->m_progressText;
executed: return d->m_progressText;
Execution Count:15
15
169} -
170 -
171bool QFutureInterfaceBase::isProgressUpdateNeeded() const -
172{ -
173 QMutexLocker locker(&d->m_mutex); -
174 return !d->progressTime.isValid() || (d->progressTime.elapsed() > (1000 / MaxProgressEmitsPerSecond));
executed: return !d->progressTime.isValid() || (d->progressTime.elapsed() > (1000 / MaxProgressEmitsPerSecond));
Execution Count:120
120
175} -
176 -
177void QFutureInterfaceBase::reportStarted() -
178{ -
179 QMutexLocker locker(&d->m_mutex); -
180 if ((d->state & Started) || (d->state & Canceled) || (d->state & Finished))
partially evaluated: (d->state & Started)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:583729
partially evaluated: (d->state & Canceled)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:584359
partially evaluated: (d->state & Finished)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:584624
0-584624
181 return;
never executed: return;
0
182 -
183 d->setState(State(Started | Running)); -
184 d->sendCallOut(QFutureCallOutEvent(QFutureCallOutEvent::Started)); -
185}
executed: }
Execution Count:582142
582142
186 -
187void QFutureInterfaceBase::reportCanceled() -
188{ -
189 cancel(); -
190}
executed: }
Execution Count:3
3
191 -
192 -
193void QFutureInterfaceBase::reportException(const QException &exception) -
194{ -
195 QMutexLocker locker(&d->m_mutex); -
196 if ((d->state & Canceled) || (d->state & Finished))
evaluated: (d->state & Canceled)
TRUEFALSE
yes
Evaluation Count:9
yes
Evaluation Count:13
partially evaluated: (d->state & Finished)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:13
0-13
197 return;
executed: return;
Execution Count:9
9
198 -
199 d->m_exceptionStore.setException(exception); -
200 d->state = State(d->state | Canceled); -
201 d->waitCondition.wakeAll(); -
202 d->pausedWaitCondition.wakeAll(); -
203 d->sendCallOut(QFutureCallOutEvent(QFutureCallOutEvent::Canceled)); -
204}
executed: }
Execution Count:13
13
205 -
206 -
207void QFutureInterfaceBase::reportFinished() -
208{ -
209 QMutexLocker locker(&d->m_mutex); -
210 if (!(d->state & Finished)) {
partially evaluated: !(d->state & Finished)
TRUEFALSE
yes
Evaluation Count:582914
no
Evaluation Count:0
0-582914
211 d->state = State((d->state & ~Running) | Finished); -
212 d->waitCondition.wakeAll(); -
213 d->sendCallOut(QFutureCallOutEvent(QFutureCallOutEvent::Finished)); -
214 }
executed: }
Execution Count:581511
581511
215}
executed: }
Execution Count:582066
582066
216 -
217void QFutureInterfaceBase::setExpectedResultCount(int resultCount) -
218{ -
219 if (d->manualProgress == false)
never evaluated: d->manualProgress == false
0
220 setProgressRange(0, resultCount);
never executed: setProgressRange(0, resultCount);
0
221 d->m_expectedResultCount = resultCount; -
222}
never executed: }
0
223 -
224int QFutureInterfaceBase::expectedResultCount() -
225{ -
226 return d->m_expectedResultCount;
never executed: return d->m_expectedResultCount;
0
227} -
228 -
229bool QFutureInterfaceBase::queryState(State state) const -
230{ -
231 return (d->state & state);
executed: return (d->state & state);
Execution Count:1845194
1845194
232} -
233 -
234void QFutureInterfaceBase::waitForResult(int resultIndex) -
235{ -
236 d->m_exceptionStore.throwPossibleException(); -
237 -
238 QMutexLocker lock(&d->m_mutex); -
239 if (!(d->state & Running))
evaluated: !(d->state & Running)
TRUEFALSE
yes
Evaluation Count:15498
yes
Evaluation Count:263889
15498-263889
240 return;
executed: return;
Execution Count:15498
15498
241 lock.unlock(); -
242 -
243 -
244 -
245 QThreadPool::globalInstance()->d_func()->stealRunnable(d->runnable); -
246 -
247 lock.relock(); -
248 -
249 if (!(d->state & Running))
evaluated: !(d->state & Running)
TRUEFALSE
yes
Evaluation Count:260361
yes
Evaluation Count:3744
3744-260361
250 return;
executed: return;
Execution Count:260151
260151
251 -
252 const int waitIndex = (resultIndex == -1) ? 2147483647 : resultIndex;
evaluated: (resultIndex == -1)
TRUEFALSE
yes
Evaluation Count:86
yes
Evaluation Count:3658
86-3658
253 while ((d->state & Running) && d->internal_isResultReadyAt(waitIndex) == false)
evaluated: (d->state & Running)
TRUEFALSE
yes
Evaluation Count:3904
yes
Evaluation Count:370
evaluated: d->internal_isResultReadyAt(waitIndex) == false
TRUEFALSE
yes
Evaluation Count:530
yes
Evaluation Count:3374
370-3904
254 d->waitCondition.wait(&d->m_mutex);
executed: d->waitCondition.wait(&d->m_mutex);
Execution Count:530
530
255 -
256 d->m_exceptionStore.throwPossibleException(); -
257}
executed: }
Execution Count:3744
3744
258 -
259void QFutureInterfaceBase::waitForFinished() -
260{ -
261 QMutexLocker lock(&d->m_mutex); -
262 const bool alreadyFinished = !(d->state & Running); -
263 lock.unlock(); -
264 -
265 if (!alreadyFinished) {
evaluated: !alreadyFinished
TRUEFALSE
yes
Evaluation Count:302294
yes
Evaluation Count:1551
1551-302294
266 QThreadPool::globalInstance()->d_func()->stealRunnable(d->runnable); -
267 -
268 lock.relock(); -
269 -
270 while (d->state & Running)
evaluated: d->state & Running
TRUEFALSE
yes
Evaluation Count:40439
yes
Evaluation Count:302101
40439-302101
271 d->waitCondition.wait(&d->m_mutex);
executed: d->waitCondition.wait(&d->m_mutex);
Execution Count:40439
40439
272 }
executed: }
Execution Count:301999
301999
273 -
274 d->m_exceptionStore.throwPossibleException(); -
275}
executed: }
Execution Count:303338
303338
276 -
277void QFutureInterfaceBase::reportResultsReady(int beginIndex, int endIndex) -
278{ -
279 if ((d->state & Canceled) || (d->state & Finished) || beginIndex == endIndex)
partially evaluated: (d->state & Canceled)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:263547
partially evaluated: (d->state & Finished)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:263832
evaluated: beginIndex == endIndex
TRUEFALSE
yes
Evaluation Count:564
yes
Evaluation Count:263446
0-263832
280 return;
executed: return;
Execution Count:564
564
281 -
282 d->waitCondition.wakeAll(); -
283 -
284 if (d->manualProgress == false) {
evaluated: d->manualProgress == false
TRUEFALSE
yes
Evaluation Count:261386
yes
Evaluation Count:1918
1918-261386
285 if (d->internal_updateProgress(d->m_progressValue + endIndex - beginIndex) == false) {
evaluated: d->internal_updateProgress(d->m_progressValue + endIndex - beginIndex) == false
TRUEFALSE
yes
Evaluation Count:1131
yes
Evaluation Count:259799
1131-259799
286 d->sendCallOut(QFutureCallOutEvent(QFutureCallOutEvent::ResultsReady, -
287 beginIndex, -
288 endIndex)); -
289 return;
executed: return;
Execution Count:1131
1131
290 } -
291 -
292 d->sendCallOuts(QFutureCallOutEvent(QFutureCallOutEvent::Progress, -
293 d->m_progressValue, -
294 d->m_progressText), -
295 QFutureCallOutEvent(QFutureCallOutEvent::ResultsReady, -
296 beginIndex, -
297 endIndex)); -
298 return;
executed: return;
Execution Count:258869
258869
299 } -
300 d->sendCallOut(QFutureCallOutEvent(QFutureCallOutEvent::ResultsReady, beginIndex, endIndex)); -
301}
executed: }
Execution Count:1918
1918
302 -
303void QFutureInterfaceBase::setRunnable(QRunnable *runnable) -
304{ -
305 d->runnable = runnable; -
306}
executed: }
Execution Count:523066
523066
307 -
308void QFutureInterfaceBase::setFilterMode(bool enable) -
309{ -
310 QMutexLocker locker(&d->m_mutex); -
311 resultStoreBase().setFilterMode(enable); -
312}
executed: }
Execution Count:34
34
313 -
314void QFutureInterfaceBase::setProgressRange(int minimum, int maximum) -
315{ -
316 QMutexLocker locker(&d->m_mutex); -
317 d->m_progressMinimum = minimum; -
318 d->m_progressMaximum = maximum; -
319 d->sendCallOut(QFutureCallOutEvent(QFutureCallOutEvent::ProgressRange, minimum, maximum)); -
320}
executed: }
Execution Count:256
256
321 -
322void QFutureInterfaceBase::setProgressValue(int progressValue) -
323{ -
324 setProgressValueAndText(progressValue, QString()); -
325}
executed: }
Execution Count:123949
123949
326 -
327void QFutureInterfaceBase::setProgressValueAndText(int progressValue, -
328 const QString &progressText) -
329{ -
330 QMutexLocker locker(&d->m_mutex); -
331 if (d->manualProgress == false)
evaluated: d->manualProgress == false
TRUEFALSE
yes
Evaluation Count:257
yes
Evaluation Count:124162
257-124162
332 d->manualProgress = true;
executed: d->manualProgress = true;
Execution Count:257
257
333 if (d->m_progressValue >= progressValue)
evaluated: d->m_progressValue >= progressValue
TRUEFALSE
yes
Evaluation Count:6621
yes
Evaluation Count:117798
6621-117798
334 return;
executed: return;
Execution Count:6621
6621
335 -
336 if ((d->state & Canceled) || (d->state & Finished))
partially evaluated: (d->state & Canceled)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:117798
partially evaluated: (d->state & Finished)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:117798
0-117798
337 return;
never executed: return;
0
338 -
339 if (d->internal_updateProgress(progressValue, progressText)) {
evaluated: d->internal_updateProgress(progressValue, progressText)
TRUEFALSE
yes
Evaluation Count:467
yes
Evaluation Count:117331
467-117331
340 d->sendCallOut(QFutureCallOutEvent(QFutureCallOutEvent::Progress, -
341 d->m_progressValue, -
342 d->m_progressText)); -
343 }
executed: }
Execution Count:467
467
344}
executed: }
Execution Count:117798
117798
345 -
346QMutex *QFutureInterfaceBase::mutex() const -
347{ -
348 return &d->m_mutex;
executed: return &d->m_mutex;
Execution Count:539377
539377
349} -
350 -
351QtPrivate::ExceptionStore &QFutureInterfaceBase::exceptionStore() -
352{ -
353 return d->m_exceptionStore;
executed: return d->m_exceptionStore;
Execution Count:3
3
354} -
355 -
356QtPrivate::ResultStoreBase &QFutureInterfaceBase::resultStoreBase() -
357{ -
358 return d->m_results;
executed: return d->m_results;
Execution Count:523502
523502
359} -
360 -
361const QtPrivate::ResultStoreBase &QFutureInterfaceBase::resultStoreBase() const -
362{ -
363 return d->m_results;
executed: return d->m_results;
Execution Count:278546
278546
364} -
365 -
366QFutureInterfaceBase &QFutureInterfaceBase::operator=(const QFutureInterfaceBase &other) -
367{ -
368 other.d->refCount.ref(); -
369 if (!d->refCount.deref())
evaluated: !d->refCount.deref()
TRUEFALSE
yes
Evaluation Count:59
yes
Evaluation Count:16
16-59
370 delete d;
executed: delete d;
Execution Count:59
59
371 d = other.d; -
372 return *this;
executed: return *this;
Execution Count:75
75
373} -
374 -
375bool QFutureInterfaceBase::refT() const -
376{ -
377 return d->refCount.refT();
executed: return d->refCount.refT();
Execution Count:548189
548189
378} -
379 -
380bool QFutureInterfaceBase::derefT() const -
381{ -
382 return d->refCount.derefT();
executed: return d->refCount.derefT();
Execution Count:546892
546892
383} -
384 -
385QFutureInterfaceBasePrivate::QFutureInterfaceBasePrivate(QFutureInterfaceBase::State initialState) -
386 : refCount(1), m_progressValue(0), m_progressMinimum(0), m_progressMaximum(0), -
387 state(initialState), pendingResults(0), -
388 manualProgress(false), m_expectedResultCount(0), runnable(0) -
389{ -
390 progressTime.invalidate(); -
391}
executed: }
Execution Count:585142
585142
392 -
393int QFutureInterfaceBasePrivate::internal_resultCount() const -
394{ -
395 return m_results.count();
executed: return m_results.count();
Execution Count:3915
3915
396} -
397 -
398bool QFutureInterfaceBasePrivate::internal_isResultReadyAt(int index) const -
399{ -
400 return (m_results.contains(index));
executed: return (m_results.contains(index));
Execution Count:18908
18908
401} -
402 -
403bool QFutureInterfaceBasePrivate::internal_waitForNextResult() -
404{ -
405 if (m_results.hasNextResult())
never evaluated: m_results.hasNextResult()
0
406 return true;
never executed: return true;
0
407 -
408 while ((state & QFutureInterfaceBase::Running) && m_results.hasNextResult() == false)
never evaluated: (state & QFutureInterfaceBase::Running)
never evaluated: m_results.hasNextResult() == false
0
409 waitCondition.wait(&m_mutex);
never executed: waitCondition.wait(&m_mutex);
0
410 -
411 return (!(state & QFutureInterfaceBase::Canceled) && m_results.hasNextResult());
never executed: return (!(state & QFutureInterfaceBase::Canceled) && m_results.hasNextResult());
0
412} -
413 -
414bool QFutureInterfaceBasePrivate::internal_updateProgress(int progress, -
415 const QString &progressText) -
416{ -
417 if (m_progressValue >= progress)
partially evaluated: m_progressValue >= progress
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:379008
0-379008
418 return false;
never executed: return false;
0
419 -
420 m_progressValue = progress; -
421 m_progressText = progressText; -
422 -
423 if (progressTime.isValid() && m_progressValue != m_progressMaximum)
evaluated: progressTime.isValid()
TRUEFALSE
yes
Evaluation Count:118722
yes
Evaluation Count:259547
evaluated: m_progressValue != m_progressMaximum
TRUEFALSE
yes
Evaluation Count:118479
yes
Evaluation Count:243
243-259547
424 if (progressTime.elapsed() < (1000 / MaxProgressEmitsPerSecond))
evaluated: progressTime.elapsed() < (1000 / MaxProgressEmitsPerSecond)
TRUEFALSE
yes
Evaluation Count:118462
yes
Evaluation Count:17
17-118462
425 return false;
executed: return false;
Execution Count:118462
118462
426 -
427 progressTime.start(); -
428 return true;
executed: return true;
Execution Count:260259
260259
429} -
430 -
431void QFutureInterfaceBasePrivate::internal_setThrottled(bool enable) -
432{ -
433 -
434 if ((enable && (state & QFutureInterfaceBase::Throttled))
partially evaluated: enable
TRUEFALSE
yes
Evaluation Count:1355
no
Evaluation Count:0
evaluated: (state & QFutureInterfaceBase::Throttled)
TRUEFALSE
yes
Evaluation Count:1352
yes
Evaluation Count:3
0-1355
435 || (!enable && !(state & QFutureInterfaceBase::Throttled)))
partially evaluated: !enable
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
never evaluated: !(state & QFutureInterfaceBase::Throttled)
0-3
436 return;
executed: return;
Execution Count:1352
1352
437 -
438 -
439 if (enable) {
partially evaluated: enable
TRUEFALSE
yes
Evaluation Count:3
no
Evaluation Count:0
0-3
440 state = QFutureInterfaceBase::State(state | QFutureInterfaceBase::Throttled); -
441 } else {
executed: }
Execution Count:3
3
442 state = QFutureInterfaceBase::State(state & ~QFutureInterfaceBase::Throttled); -
443 if (!(state & QFutureInterfaceBase::Paused))
never evaluated: !(state & QFutureInterfaceBase::Paused)
0
444 pausedWaitCondition.wakeAll();
never executed: pausedWaitCondition.wakeAll();
0
445 }
never executed: }
0
446} -
447 -
448void QFutureInterfaceBasePrivate::sendCallOut(const QFutureCallOutEvent &callOutEvent) -
449{ -
450 if (outputConnections.isEmpty())
evaluated: outputConnections.isEmpty()
TRUEFALSE
yes
Evaluation Count:1161987
yes
Evaluation Count:1453
1453-1161987
451 return;
executed: return;
Execution Count:1159645
1159645
452 -
453 for (int i = 0; i < outputConnections.count(); ++i)
evaluated: i < outputConnections.count()
TRUEFALSE
yes
Evaluation Count:1453
yes
Evaluation Count:1453
1453
454 outputConnections.at(i)->postCallOutEvent(callOutEvent);
executed: outputConnections.at(i)->postCallOutEvent(callOutEvent);
Execution Count:1453
1453
455}
executed: }
Execution Count:1453
1453
456 -
457void QFutureInterfaceBasePrivate::sendCallOuts(const QFutureCallOutEvent &callOutEvent1, -
458 const QFutureCallOutEvent &callOutEvent2) -
459{ -
460 if (outputConnections.isEmpty())
evaluated: outputConnections.isEmpty()
TRUEFALSE
yes
Evaluation Count:260594
yes
Evaluation Count:6
6-260594
461 return;
executed: return;
Execution Count:259698
259698
462 -
463 for (int i = 0; i < outputConnections.count(); ++i) {
evaluated: i < outputConnections.count()
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:6
6
464 QFutureCallOutInterface *interface = outputConnections.at(i); -
465 interface->postCallOutEvent(callOutEvent1); -
466 interface->postCallOutEvent(callOutEvent2); -
467 }
executed: }
Execution Count:6
6
468}
executed: }
Execution Count:6
6
469 -
470 -
471 -
472 -
473 -
474void QFutureInterfaceBasePrivate::connectOutputInterface(QFutureCallOutInterface *interface) -
475{ -
476 QMutexLocker locker(&m_mutex); -
477 -
478 if (state & QFutureInterfaceBase::Started) {
partially evaluated: state & QFutureInterfaceBase::Started
TRUEFALSE
yes
Evaluation Count:28
no
Evaluation Count:0
0-28
479 interface->postCallOutEvent(QFutureCallOutEvent(QFutureCallOutEvent::Started)); -
480 interface->postCallOutEvent(QFutureCallOutEvent(QFutureCallOutEvent::ProgressRange, -
481 m_progressMinimum, -
482 m_progressMaximum)); -
483 interface->postCallOutEvent(QFutureCallOutEvent(QFutureCallOutEvent::Progress, -
484 m_progressValue, -
485 m_progressText)); -
486 }
executed: }
Execution Count:28
28
487 -
488 QtPrivate::ResultIteratorBase it = m_results.begin(); -
489 while (it != m_results.end()) {
evaluated: it != m_results.end()
TRUEFALSE
yes
Evaluation Count:9
yes
Evaluation Count:28
9-28
490 const int begin = it.resultIndex(); -
491 const int end = begin + it.batchSize(); -
492 interface->postCallOutEvent(QFutureCallOutEvent(QFutureCallOutEvent::ResultsReady, -
493 begin, -
494 end)); -
495 it.batchedAdvance(); -
496 }
executed: }
Execution Count:9
9
497 -
498 if (state & QFutureInterfaceBase::Paused)
partially evaluated: state & QFutureInterfaceBase::Paused
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:28
0-28
499 interface->postCallOutEvent(QFutureCallOutEvent(QFutureCallOutEvent::Paused));
never executed: interface->postCallOutEvent(QFutureCallOutEvent(QFutureCallOutEvent::Paused));
0
500 -
501 if (state & QFutureInterfaceBase::Canceled)
evaluated: state & QFutureInterfaceBase::Canceled
TRUEFALSE
yes
Evaluation Count:5
yes
Evaluation Count:23
5-23
502 interface->postCallOutEvent(QFutureCallOutEvent(QFutureCallOutEvent::Canceled));
executed: interface->postCallOutEvent(QFutureCallOutEvent(QFutureCallOutEvent::Canceled));
Execution Count:5
5
503 -
504 if (state & QFutureInterfaceBase::Finished)
evaluated: state & QFutureInterfaceBase::Finished
TRUEFALSE
yes
Evaluation Count:14
yes
Evaluation Count:14
14
505 interface->postCallOutEvent(QFutureCallOutEvent(QFutureCallOutEvent::Finished));
executed: interface->postCallOutEvent(QFutureCallOutEvent(QFutureCallOutEvent::Finished));
Execution Count:14
14
506 -
507 outputConnections.append(interface); -
508}
executed: }
Execution Count:28
28
509 -
510void QFutureInterfaceBasePrivate::disconnectOutputInterface(QFutureCallOutInterface *interface) -
511{ -
512 QMutexLocker lock(&m_mutex); -
513 const int index = outputConnections.indexOf(interface); -
514 if (index == -1)
evaluated: index == -1
TRUEFALSE
yes
Evaluation Count:22
yes
Evaluation Count:28
22-28
515 return;
executed: return;
Execution Count:22
22
516 outputConnections.removeAt(index); -
517 -
518 interface->callOutInterfaceDisconnected(); -
519}
executed: }
Execution Count:28
28
520 -
521void QFutureInterfaceBasePrivate::setState(QFutureInterfaceBase::State newState) -
522{ -
523 state = newState; -
524}
executed: }
Execution Count:582985
582985
525 -
526 -
527 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial