mirror of
https://github.com/wolfpld/tracy.git
synced 2025-03-20 07:40:02 +08:00
Make memUsage an atomic.
This commit is contained in:
@@ -47,7 +47,7 @@ public:
|
||||
, m_capacity( 0 )
|
||||
, m_magic( 0 )
|
||||
{
|
||||
memUsage += sizeof( T );
|
||||
memUsage.fetch_add( sizeof( T ), std::memory_order_relaxed );
|
||||
new(m_ptr) T( value );
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
{
|
||||
if( m_capacity != MaxCapacity() && m_ptr )
|
||||
{
|
||||
memUsage -= Capacity() * sizeof( T );
|
||||
memUsage.fetch_sub( Capacity() * sizeof( T ), std::memory_order_relaxed );
|
||||
free( m_ptr );
|
||||
}
|
||||
}
|
||||
@@ -65,7 +65,7 @@ public:
|
||||
{
|
||||
if( m_capacity != MaxCapacity() && m_ptr )
|
||||
{
|
||||
memUsage -= Capacity() * sizeof( T );
|
||||
memUsage.fetch_sub( Capacity() * sizeof( T ), std::memory_order_relaxed );
|
||||
free( m_ptr );
|
||||
}
|
||||
memcpy( (char*)this, &src, sizeof( Vector<T> ) );
|
||||
@@ -254,7 +254,7 @@ public:
|
||||
cap |= cap >> 8;
|
||||
cap |= cap >> 16;
|
||||
cap = TracyCountBits( cap );
|
||||
memUsage += ( ( 1 << cap ) - Capacity() ) * sizeof( T );
|
||||
memUsage.fetch_add( ( ( 1 << cap ) - Capacity() ) * sizeof( T ), std::memory_order_relaxed );
|
||||
m_capacity = cap;
|
||||
Realloc();
|
||||
}
|
||||
@@ -291,13 +291,13 @@ private:
|
||||
|
||||
if( m_ptr == nullptr )
|
||||
{
|
||||
memUsage += sizeof( T );
|
||||
memUsage.fetch_add( sizeof( T ), std::memory_order_relaxed );
|
||||
m_ptr = (T*)malloc( sizeof( T ) );
|
||||
m_capacity = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
memUsage += Capacity() * sizeof( T );
|
||||
memUsage.fetch_add( Capacity() * sizeof( T ), std::memory_order_relaxed );
|
||||
m_capacity++;
|
||||
Realloc();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user