OGRE-Next  4.0.0unstable
Object-Oriented Graphics Rendering Engine
OgreThreadDefinesTBB.h File Reference

Macros

#define OGRE_AUTO_MUTEX   mutable tbb::recursive_mutex OGRE_AUTO_MUTEX_NAME
 
#define OGRE_AUTO_SHARED_MUTEX   mutable tbb::recursive_mutex *OGRE_AUTO_MUTEX_NAME
 
#define OGRE_COPY_AUTO_SHARED_MUTEX(from)
 
#define OGRE_DELETE_AUTO_SHARED_MUTEX
 
#define OGRE_LOCK_AUTO_MUTEX   tbb::recursive_mutex::scoped_lock ogreAutoMutexLock( OGRE_AUTO_MUTEX_NAME )
 
#define OGRE_LOCK_AUTO_SHARED_MUTEX
 
#define OGRE_LOCK_MUTEX(name)    tbb::recursive_mutex::scoped_lock OGRE_TOKEN_PASTE_EXTRA( ogrenameLock, __LINE__ )( name )
 
#define OGRE_LOCK_MUTEX_NAMED(mutexName, lockName)    tbb::recursive_mutex::scoped_lock lockName( mutexName )
 
#define OGRE_LOCK_RW_MUTEX_READ(name)    tbb::queuing_rw_mutex::scoped_lock OGRE_TOKEN_PASTE_EXTRA( ogrenameLock, __LINE__ )( name, false )
 
#define OGRE_LOCK_RW_MUTEX_WRITE(name)    tbb::queuing_rw_mutex::scoped_lock OGRE_TOKEN_PASTE_EXTRA( ogrenameLock, __LINE__ )( name, true )
 
#define OGRE_MUTEX(name)   mutable tbb::recursive_mutex name
 
#define OGRE_MUTEX_CONDITIONAL(mutex)   if( mutex )
 
#define OGRE_NEW_AUTO_SHARED_MUTEX
 
#define OGRE_RW_MUTEX(name)   mutable tbb::queuing_rw_mutex name
 
#define OGRE_SET_AUTO_SHARED_MUTEX_NULL   OGRE_AUTO_MUTEX_NAME = 0
 
#define OGRE_STATIC_MUTEX(name)   static tbb::recursive_mutex name
 
#define OGRE_STATIC_MUTEX_INSTANCE(name)   tbb::recursive_mutex name
 
#define OGRE_THREAD_CURRENT_ID   tbb::this_tbb_thread::get_id()
 
#define OGRE_THREAD_HARDWARE_CONCURRENCY   tbb::task_scheduler_init::default_num_threads()
 
#define OGRE_THREAD_ID_TYPE   tbb::tbb_thread::id
 
#define OGRE_THREAD_POINTER(T, var)   tbb::enumerable_thread_specific<SharedPtr<T> > var
 
#define OGRE_THREAD_POINTER_DELETE(var)   var.local().setNull()
 
#define OGRE_THREAD_POINTER_GET(var)   var.local().get()
 
#define OGRE_THREAD_POINTER_INIT(var)   var()
 
#define OGRE_THREAD_POINTER_SET(var, expr)
 
#define OGRE_THREAD_POINTER_VAR(T, var)   tbb::enumerable_thread_specific<SharedPtr<T> > var
 
#define OGRE_THREAD_SLEEP(ms)    tbb::this_tbb_thread::sleep( tbb::tick_count::interval_t( double( ms ) / 1000 ) )
 
#define OGRE_THREAD_WORKER_INHERIT
 
#define OGRE_THREAD_YIELD   tbb::this_tbb_thread::yield()
 
#define OGRE_TOKEN_PASTE(x, y)   x##y
 
#define OGRE_TOKEN_PASTE_EXTRA(x, y)   OGRE_TOKEN_PASTE( x, y )
 

Macro Definition Documentation

◆ OGRE_AUTO_MUTEX

#define OGRE_AUTO_MUTEX   mutable tbb::recursive_mutex OGRE_AUTO_MUTEX_NAME

◆ OGRE_AUTO_SHARED_MUTEX

#define OGRE_AUTO_SHARED_MUTEX   mutable tbb::recursive_mutex *OGRE_AUTO_MUTEX_NAME

◆ OGRE_COPY_AUTO_SHARED_MUTEX

#define OGRE_COPY_AUTO_SHARED_MUTEX (   from)
Value:
assert( !OGRE_AUTO_MUTEX_NAME ); \
OGRE_AUTO_MUTEX_NAME = from
#define OGRE_AUTO_MUTEX_NAME
Definition: OgreThreadDefines.h:29

◆ OGRE_DELETE_AUTO_SHARED_MUTEX

#define OGRE_DELETE_AUTO_SHARED_MUTEX
Value:

◆ OGRE_LOCK_AUTO_MUTEX

#define OGRE_LOCK_AUTO_MUTEX   tbb::recursive_mutex::scoped_lock ogreAutoMutexLock( OGRE_AUTO_MUTEX_NAME )

◆ OGRE_LOCK_AUTO_SHARED_MUTEX

#define OGRE_LOCK_AUTO_SHARED_MUTEX
Value:
assert( OGRE_AUTO_MUTEX_NAME ); \
tbb::recursive_mutex::scoped_lock ogreAutoMutexLock( *OGRE_AUTO_MUTEX_NAME )

◆ OGRE_LOCK_MUTEX

#define OGRE_LOCK_MUTEX (   name)     tbb::recursive_mutex::scoped_lock OGRE_TOKEN_PASTE_EXTRA( ogrenameLock, __LINE__ )( name )

◆ OGRE_LOCK_MUTEX_NAMED

#define OGRE_LOCK_MUTEX_NAMED (   mutexName,
  lockName 
)     tbb::recursive_mutex::scoped_lock lockName( mutexName )

◆ OGRE_LOCK_RW_MUTEX_READ

#define OGRE_LOCK_RW_MUTEX_READ (   name)     tbb::queuing_rw_mutex::scoped_lock OGRE_TOKEN_PASTE_EXTRA( ogrenameLock, __LINE__ )( name, false )

◆ OGRE_LOCK_RW_MUTEX_WRITE

#define OGRE_LOCK_RW_MUTEX_WRITE (   name)     tbb::queuing_rw_mutex::scoped_lock OGRE_TOKEN_PASTE_EXTRA( ogrenameLock, __LINE__ )( name, true )

◆ OGRE_MUTEX

#define OGRE_MUTEX (   name)    mutable tbb::recursive_mutex name

◆ OGRE_MUTEX_CONDITIONAL

#define OGRE_MUTEX_CONDITIONAL (   mutex)    if( mutex )

◆ OGRE_NEW_AUTO_SHARED_MUTEX

#define OGRE_NEW_AUTO_SHARED_MUTEX
Value:
assert( !OGRE_AUTO_MUTEX_NAME ); \
OGRE_AUTO_MUTEX_NAME = new tbb::recursive_mutex()

◆ OGRE_RW_MUTEX

#define OGRE_RW_MUTEX (   name)    mutable tbb::queuing_rw_mutex name

◆ OGRE_SET_AUTO_SHARED_MUTEX_NULL

#define OGRE_SET_AUTO_SHARED_MUTEX_NULL   OGRE_AUTO_MUTEX_NAME = 0

◆ OGRE_STATIC_MUTEX

#define OGRE_STATIC_MUTEX (   name)    static tbb::recursive_mutex name

◆ OGRE_STATIC_MUTEX_INSTANCE

#define OGRE_STATIC_MUTEX_INSTANCE (   name)    tbb::recursive_mutex name

◆ OGRE_THREAD_CURRENT_ID

#define OGRE_THREAD_CURRENT_ID   tbb::this_tbb_thread::get_id()

◆ OGRE_THREAD_HARDWARE_CONCURRENCY

#define OGRE_THREAD_HARDWARE_CONCURRENCY   tbb::task_scheduler_init::default_num_threads()

◆ OGRE_THREAD_ID_TYPE

#define OGRE_THREAD_ID_TYPE   tbb::tbb_thread::id

◆ OGRE_THREAD_POINTER

#define OGRE_THREAD_POINTER (   T,
  var 
)    tbb::enumerable_thread_specific<SharedPtr<T> > var

◆ OGRE_THREAD_POINTER_DELETE

#define OGRE_THREAD_POINTER_DELETE (   var)    var.local().setNull()

◆ OGRE_THREAD_POINTER_GET

#define OGRE_THREAD_POINTER_GET (   var)    var.local().get()

◆ OGRE_THREAD_POINTER_INIT

#define OGRE_THREAD_POINTER_INIT (   var)    var()

◆ OGRE_THREAD_POINTER_SET

#define OGRE_THREAD_POINTER_SET (   var,
  expr 
)
Value:
do \
{ \
var.local().setNull(); \
var.local().bind( expr ); \
} while( 0 )

◆ OGRE_THREAD_POINTER_VAR

#define OGRE_THREAD_POINTER_VAR (   T,
  var 
)    tbb::enumerable_thread_specific<SharedPtr<T> > var

◆ OGRE_THREAD_SLEEP

#define OGRE_THREAD_SLEEP (   ms)     tbb::this_tbb_thread::sleep( tbb::tick_count::interval_t( double( ms ) / 1000 ) )

◆ OGRE_THREAD_WORKER_INHERIT

#define OGRE_THREAD_WORKER_INHERIT

◆ OGRE_THREAD_YIELD

#define OGRE_THREAD_YIELD   tbb::this_tbb_thread::yield()

◆ OGRE_TOKEN_PASTE

#define OGRE_TOKEN_PASTE (   x,
 
)    x##y

◆ OGRE_TOKEN_PASTE_EXTRA

#define OGRE_TOKEN_PASTE_EXTRA (   x,
 
)    OGRE_TOKEN_PASTE( x, y )