Przeglądaj źródła

Merge branch 'linux-sound' into release-3.7

Daniel Buckmaster 10 lat temu
rodzic
commit
d4e5b47195

+ 2 - 2
Engine/source/platform/platformIntrinsics.gcc.h

@@ -42,7 +42,7 @@ inline void dFetchAndAdd( volatile U32& ref, U32 val )
    #if defined(TORQUE_OS_PS3)
       cellAtomicAdd32( (std::uint32_t *)&ref, val );
    #elif !defined(TORQUE_OS_MAC)
-      __sync_fetch_and_add( ( volatile long* ) &ref, val );
+      __sync_fetch_and_add(&ref, val );
    #else
       OSAtomicAdd32( val, (int32_t* ) &ref);
    #endif
@@ -53,7 +53,7 @@ inline void dFetchAndAdd( volatile S32& ref, S32 val )
    #if defined(TORQUE_OS_PS3)
       cellAtomicAdd32( (std::uint32_t *)&ref, val );
    #elif !defined(TORQUE_OS_MAC)
-      __sync_fetch_and_add( ( volatile long* ) &ref, val );
+      __sync_fetch_and_add( &ref, val );
    #else
       OSAtomicAdd32( val, (int32_t* ) &ref);
    #endif

+ 1 - 9
Engine/source/platform/threads/threadPool.cpp

@@ -412,15 +412,7 @@ void ThreadPool::queueWorkItem( WorkItem* item )
 
       mWorkItemQueue.insert( item->getPriority(), item );
 
-      // Wake up some thread, if we need to.
-      // Use the ready count here as the wake count does
-      // not correctly protect the critical section in the
-      // thread's run function.  This may lead us to release
-      // the semaphore more often than necessary, but it avoids
-      // a race condition.
-
-      if( !dCompareAndSwap( mNumThreadsReady, mNumThreads, mNumThreads ) )
-         mSemaphore.release();
+      mSemaphore.release();
    }
 }