diff --git a/test/test.cpp b/test/test.cpp index f5315b98..34bb184d 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -1,4 +1,5 @@ #include +#include #include #include "../client/Tracy.hpp" #include "../common/TracySystem.hpp" @@ -38,17 +39,45 @@ void ScopeCheck() } } +static std::mutex mutex; + +void Lock1() +{ + for(;;) + { + std::this_thread::sleep_for( std::chrono::milliseconds( 4 ) ); + std::lock_guard lock( mutex ); + ZoneScoped; + std::this_thread::sleep_for( std::chrono::milliseconds( 4 ) ); + } +} + +void Lock2() +{ + for(;;) + { + std::this_thread::sleep_for( std::chrono::milliseconds( 3 ) ); + std::unique_lock lock( mutex ); + ZoneScoped; + std::this_thread::sleep_for( std::chrono::milliseconds( 5 ) ); + } +} + int main() { auto t1 = std::thread( TestFunction ); auto t2 = std::thread( TestFunction ); auto t3 = std::thread( ResolutionCheck ); auto t4 = std::thread( ScopeCheck ); + auto t5 = std::thread( Lock1 ); + auto t6 = std::thread( Lock2 ); tracy::SetThreadName( t1, "First thread" ); tracy::SetThreadName( t2, "Second thread" ); tracy::SetThreadName( t3, "Resolution check" ); tracy::SetThreadName( t4, "Scope check" ); + tracy::SetThreadName( t5, "Lock 1" ); + tracy::SetThreadName( t6, "Lock 2" ); for(;;) {