MCPcopy Create free account
hub / github.com/GarageGames/Torque3D / pushFront

Method pushFront

Engine/source/platform/threads/threadSafeDeque.h:346–373  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

344
345template< typename T >
346void ThreadSafeDeque< T >::pushFront( const ValueType& value )
347{
348 NodeRef nextNode;
349 NodeRef newNode;
350
351 NodeRef::unsafeWrite( newNode, new ( mFreeList ) Node( mFreeList, value ) );
352
353 while( 1 )
354 {
355 nextNode = getHead();
356 if( !nextNode )
357 {
358 newNode->mNext = NULL;
359 if( mHead.trySetFromTo( NULL, newNode ) )
360 break;
361 }
362 else
363 {
364 newNode->mNext = nextNode;
365 if( nextNode->mPrev.trySetFromTo( NULL, newNode, NodeRef::TAG_FailIfSet ) )
366 break;
367 }
368 }
369
370#ifdef TORQUE_DEBUG
371 dFetchAndAdd( mNumValues, 1 );
372#endif
373}
374
375template< typename T >
376void ThreadSafeDeque< T >::pushBack( const ValueType& value )

Callers 2

processMethod · 0.45
TEST_FIXFunction · 0.45

Calls 2

trySetFromToMethod · 0.80
dFetchAndAddFunction · 0.50

Tested by 1

TEST_FIXFunction · 0.36