1
0
mirror of https://github.com/wolfpld/tracy synced 2025-04-29 04:23:51 +00:00

Basic thread test setup.

This commit is contained in:
Bartosz Taudul 2017-10-04 01:39:43 +02:00
parent f8e7f7ed83
commit 740a132f56

View File

@ -1,4 +1,5 @@
#include <chrono> #include <chrono>
#include <mutex>
#include <thread> #include <thread>
#include "../client/Tracy.hpp" #include "../client/Tracy.hpp"
#include "../common/TracySystem.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<std::mutex> 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<std::mutex> lock( mutex );
ZoneScoped;
std::this_thread::sleep_for( std::chrono::milliseconds( 5 ) );
}
}
int main() int main()
{ {
auto t1 = std::thread( TestFunction ); auto t1 = std::thread( TestFunction );
auto t2 = std::thread( TestFunction ); auto t2 = std::thread( TestFunction );
auto t3 = std::thread( ResolutionCheck ); auto t3 = std::thread( ResolutionCheck );
auto t4 = std::thread( ScopeCheck ); auto t4 = std::thread( ScopeCheck );
auto t5 = std::thread( Lock1 );
auto t6 = std::thread( Lock2 );
tracy::SetThreadName( t1, "First thread" ); tracy::SetThreadName( t1, "First thread" );
tracy::SetThreadName( t2, "Second thread" ); tracy::SetThreadName( t2, "Second thread" );
tracy::SetThreadName( t3, "Resolution check" ); tracy::SetThreadName( t3, "Resolution check" );
tracy::SetThreadName( t4, "Scope check" ); tracy::SetThreadName( t4, "Scope check" );
tracy::SetThreadName( t5, "Lock 1" );
tracy::SetThreadName( t6, "Lock 2" );
for(;;) for(;;)
{ {