Line | Source Code | Coverage |
---|
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | static QMutexPool *globalMutexPool() { static QGlobalStatic<QMutexPool > thisGlobalStatic = { { (0) }, false }; if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { QMutexPool *x = new QMutexPool (QMutex::Recursive); if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) delete x; else static QGlobalStaticDeleter<QMutexPool > cleanup(thisGlobalStatic); } return thisGlobalStatic.pointer.load(); } never executed: delete x; executed: return thisGlobalStatic.pointer.load(); Execution Count:44701 partially evaluated: !thisGlobalStatic.pointer.testAndSetOrdered(0, x) no Evaluation Count:0 | yes Evaluation Count:33 |
evaluated: !thisGlobalStatic.pointer.load() yes Evaluation Count:33 | yes Evaluation Count:44668 |
partially evaluated: !thisGlobalStatic.destroyed yes Evaluation Count:33 | no Evaluation Count:0 |
| 0-44701 |
7 | QMutexPool::QMutexPool(QMutex::RecursionMode recursionMode, int size) | - |
8 | : mutexes(size), recursionMode(recursionMode) | - |
9 | { | - |
10 | for (int index = 0; index < mutexes.count(); ++index) { evaluated: index < mutexes.count() yes Evaluation Count:4323 | yes Evaluation Count:33 |
| 33-4323 |
11 | mutexes[index].store(0); | - |
12 | } executed: } Execution Count:4323 | 4323 |
13 | } executed: } Execution Count:33 | 33 |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | | - |
19 | QMutexPool::~QMutexPool() | - |
20 | { | - |
21 | for (int index = 0; index < mutexes.count(); ++index) evaluated: index < mutexes.count() yes Evaluation Count:29213 | yes Evaluation Count:223 |
| 223-29213 |
22 | delete mutexes[index].load(); executed: delete mutexes[index].load(); Execution Count:29213 | 29213 |
23 | } executed: } Execution Count:223 | 223 |
24 | | - |
25 | | - |
26 | | - |
27 | | - |
28 | QMutexPool *QMutexPool::instance() | - |
29 | { | - |
30 | return globalMutexPool(); never executed: return globalMutexPool(); | 0 |
31 | } | - |
32 | QMutex *QMutexPool::createMutex(int index) | - |
33 | { | - |
34 | | - |
35 | QMutex *newMutex = new QMutex(recursionMode); | - |
36 | if (!mutexes[index].testAndSetRelease(0, newMutex)) partially evaluated: !mutexes[index].testAndSetRelease(0, newMutex) no Evaluation Count:0 | yes Evaluation Count:157 |
| 0-157 |
37 | delete newMutex; never executed: delete newMutex; | 0 |
38 | return mutexes[index].load(); executed: return mutexes[index].load(); Execution Count:157 | 157 |
39 | } | - |
40 | | - |
41 | | - |
42 | | - |
43 | | - |
44 | QMutex *QMutexPool::globalInstanceGet(const void *address) | - |
45 | { | - |
46 | QMutexPool * const globalInstance = globalMutexPool(); | - |
47 | if (globalInstance == 0) partially evaluated: globalInstance == 0 no Evaluation Count:0 | yes Evaluation Count:44701 |
| 0-44701 |
48 | return 0; never executed: return 0; | 0 |
49 | return globalInstance->get(address); executed: return globalInstance->get(address); Execution Count:44701 | 44701 |
50 | } | - |
51 | | - |
52 | | - |
53 | | - |
| | |