Lines Matching full:mutex
5 a mutex wait directed graph, and then looks for a cycle in this graph. This
14 program will dump the cycle of mutexes, dump the stack traces where each mutex
21 Since this traces all mutex lock and unlock events and all thread creation
32 For recursive mutexes, lock() is called multiple times on the same mutex.
33 However, there is no way to determine if a mutex is a recursive mutex
34 after the mutex has been created. As a result, this tool will not find
35 potential deadlocks that involve only one mutex.
43 …Mutex M0 (main::static_mutex3 0x0000000000473c60) => Mutex M1 (0x00007fff6d738400) => Mutex M2 (gl…
45 Mutex M1 (0x00007fff6d738400) acquired here while holding Mutex M0 (main::static_mutex3 0x000000000…
47 @ 0000000000406dd0 std::mutex::lock()
48 @ 00000000004070d2 std::lock_guard<std::mutex>::lock_guard(std::mutex&)
57 Mutex M0 (main::static_mutex3 0x0000000000473c60) previously acquired by the same Thread 357250 (lo…
59 @ 0000000000406dd0 std::mutex::lock()
60 @ 00000000004070d2 std::lock_guard<std::mutex>::lock_guard(std::mutex&)
69 Mutex M2 (global_mutex1 0x0000000000473be0) acquired here while holding Mutex M1 (0x00007fff6d73840…
71 @ 0000000000406dd0 std::mutex::lock()
72 @ 00000000004070d2 std::lock_guard<std::mutex>::lock_guard(std::mutex&)
81 Mutex M1 (0x00007fff6d738400) previously acquired by the same Thread 357251 (lockinversion) here:
83 @ 0000000000406dd0 std::mutex::lock()
84 @ 00000000004070d2 std::lock_guard<std::mutex>::lock_guard(std::mutex&)
93 Mutex M3 (global_mutex2 0x0000000000473c20) acquired here while holding Mutex M2 (global_mutex1 0x0…
95 @ 0000000000406dd0 std::mutex::lock()
96 @ 00000000004070d2 std::lock_guard<std::mutex>::lock_guard(std::mutex&)
105 Mutex M2 (global_mutex1 0x0000000000473be0) previously acquired by the same Thread 357247 (lockinve…
107 @ 0000000000406dd0 std::mutex::lock()
108 @ 00000000004070d2 std::lock_guard<std::mutex>::lock_guard(std::mutex&)
117 Mutex M0 (main::static_mutex3 0x0000000000473c60) acquired here while holding Mutex M3 (global_mute…
119 @ 0000000000406dd0 std::mutex::lock()
120 @ 00000000004070d2 std::lock_guard<std::mutex>::lock_guard(std::mutex&)
129 Mutex M3 (global_mutex2 0x0000000000473c20) previously acquired by the same Thread 357248 (lockinve…
131 @ 0000000000406dd0 std::mutex::lock()
132 @ 00000000004070d2 std::lock_guard<std::mutex>::lock_guard(std::mutex&)
190 #include <mutex>
193 std::mutex global_mutex1;
194 std::mutex global_mutex2;
197 static std::mutex static_mutex3;
198 std::mutex local_mutex4;
205 std::lock_guard<std::mutex> g1(global_mutex1);
206 std::lock_guard<std::mutex> g2(global_mutex2);
211 std::lock_guard<std::mutex> g2(global_mutex2);
212 std::lock_guard<std::mutex> g3(static_mutex3);
217 std::lock_guard<std::mutex> g3(static_mutex3);
218 std::lock_guard<std::mutex> g4(local_mutex4);
223 std::lock_guard<std::mutex> g4(local_mutex4);
224 std::lock_guard<std::mutex> g1(global_mutex1);
234 Note that an actual deadlock did not occur, although this mutex lock ordering
237 symbols are enabled, the output will contain the mutex symbol name. The output
282 about the number of mutexes and edges in the mutex wait graph. If you want to
302 the `--lock-symbols` and `--unlock-symbols` flags to specify different mutex
332 If set, this will dump the mutex graph to the
334 --verbose Print statistics about the mutex wait graph.
356 # the mutex wait graph.
360 # Analyze PID 181 and trace custom mutex
364 # Analyze PID 181 and dump the mutex wait