OGRE 2.3.3
Object-Oriented Graphics Rendering Engine
Loading...
Searching...
No Matches
OgreThreadDefinesSTD.h File Reference

Classes

class  Ogre::ThreadLocalPtr< T >
 

Namespaces

namespace  Ogre
 

Macros

#define OGRE_AUTO_MUTEX   mutable std::recursive_mutex OGRE_AUTO_MUTEX_NAME
 
#define OGRE_AUTO_SHARED_MUTEX   mutable std::recursive_mutex *OGRE_AUTO_MUTEX_NAME
 
#define OGRE_COPY_AUTO_SHARED_MUTEX(from)   assert(!OGRE_AUTO_MUTEX_NAME); OGRE_AUTO_MUTEX_NAME = from
 
#define OGRE_DELETE_AUTO_SHARED_MUTEX   do { assert(OGRE_AUTO_MUTEX_NAME); delete OGRE_AUTO_MUTEX_NAME; } while (0)
 
#define OGRE_LOCK_AUTO_MUTEX   std::unique_lock<std::recursive_mutex> ogreAutoMutexLock(OGRE_AUTO_MUTEX_NAME)
 
#define OGRE_LOCK_AUTO_SHARED_MUTEX   assert(OGRE_AUTO_MUTEX_NAME); std::recursive_mutex::scoped_lock ogreAutoMutexLock(*OGRE_AUTO_MUTEX_NAME)
 
#define OGRE_LOCK_MUTEX(name)   std::unique_lock<std::recursive_mutex> OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name)
 
#define OGRE_LOCK_MUTEX_NAMED(mutexName, lockName)   std::unique_lock<std::recursive_mutex> lockName(mutexName)
 
#define OGRE_LOCK_RW_MUTEX_READ(name)   std::shared_lock<std::shared_mutex> OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name)
 
#define OGRE_LOCK_RW_MUTEX_WRITE(name)   std::unique_lock<std::shared_mutex> OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name)
 
#define OGRE_MUTEX(name)   mutable std::recursive_mutex name
 
#define OGRE_MUTEX_CONDITIONAL(mutex)   if (mutex)
 
#define OGRE_NEW_AUTO_SHARED_MUTEX   assert(!OGRE_AUTO_MUTEX_NAME); OGRE_AUTO_MUTEX_NAME = new std::recursive_mutex()
 
#define OGRE_RW_MUTEX(name)   mutable std::shared_mutex name
 
#define OGRE_SET_AUTO_SHARED_MUTEX_NULL   OGRE_AUTO_MUTEX_NAME = 0
 
#define OGRE_STATIC_MUTEX(name)   static std::recursive_mutex name
 
#define OGRE_STATIC_MUTEX_INSTANCE(name)   std::recursive_mutex name
 
#define OGRE_THREAD_CREATE(name, worker)   std::thread* name = OGRE_NEW_T(std::thread, MEMCATEGORY_GENERAL)(worker)
 
#define OGRE_THREAD_CURRENT_ID   std::this_thread::get_id()
 
#define OGRE_THREAD_DESTROY(name)   OGRE_DELETE_T(name, thread, MEMCATEGORY_GENERAL)
 
#define OGRE_THREAD_HARDWARE_CONCURRENCY   std::thread::hardware_concurrency()
 
#define OGRE_THREAD_ID_TYPE   std::thread::id
 
#define OGRE_THREAD_NOTIFY_ALL(sync)   sync.notify_all()
 
#define OGRE_THREAD_NOTIFY_ONE(sync)   sync.notify_one()
 
#define OGRE_THREAD_POINTER(T, var)   Ogre::ThreadLocalPtr<T> var
 
#define OGRE_THREAD_POINTER_DELETE(var)   var.reset(0)
 
#define OGRE_THREAD_POINTER_GET(var)   var.get()
 
#define OGRE_THREAD_POINTER_INIT(var)   var()
 
#define OGRE_THREAD_POINTER_SET(var, expr)   var.reset(expr)
 
#define OGRE_THREAD_POINTER_VAR(T, var)   Ogre::ThreadLocalPtr<T> var ()
 
#define OGRE_THREAD_SLEEP(ms)   std::this_thread::sleep_for(std::chrono::milliseconds(ms))
 
#define OGRE_THREAD_SYNCHRONISER(sync)   std::condition_variable_any sync
 
#define OGRE_THREAD_TYPE   std::thread
 
#define OGRE_THREAD_WAIT(sync, mutex, lock)   sync.wait(lock)
 
#define OGRE_THREAD_WORKER_INHERIT
 
#define OGRE_THREAD_YIELD   std::this_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 std::recursive_mutex OGRE_AUTO_MUTEX_NAME

◆ OGRE_AUTO_SHARED_MUTEX

#define OGRE_AUTO_SHARED_MUTEX   mutable std::recursive_mutex *OGRE_AUTO_MUTEX_NAME

◆ OGRE_COPY_AUTO_SHARED_MUTEX

#define OGRE_COPY_AUTO_SHARED_MUTEX ( from)    assert(!OGRE_AUTO_MUTEX_NAME); OGRE_AUTO_MUTEX_NAME = from

◆ OGRE_DELETE_AUTO_SHARED_MUTEX

#define OGRE_DELETE_AUTO_SHARED_MUTEX   do { assert(OGRE_AUTO_MUTEX_NAME); delete OGRE_AUTO_MUTEX_NAME; } while (0)

◆ OGRE_LOCK_AUTO_MUTEX

#define OGRE_LOCK_AUTO_MUTEX   std::unique_lock<std::recursive_mutex> ogreAutoMutexLock(OGRE_AUTO_MUTEX_NAME)

◆ OGRE_LOCK_AUTO_SHARED_MUTEX

#define OGRE_LOCK_AUTO_SHARED_MUTEX   assert(OGRE_AUTO_MUTEX_NAME); std::recursive_mutex::scoped_lock ogreAutoMutexLock(*OGRE_AUTO_MUTEX_NAME)

◆ OGRE_LOCK_MUTEX

#define OGRE_LOCK_MUTEX ( name)    std::unique_lock<std::recursive_mutex> OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name)

◆ OGRE_LOCK_MUTEX_NAMED

#define OGRE_LOCK_MUTEX_NAMED ( mutexName,
lockName )   std::unique_lock<std::recursive_mutex> lockName(mutexName)

◆ OGRE_LOCK_RW_MUTEX_READ

#define OGRE_LOCK_RW_MUTEX_READ ( name)    std::shared_lock<std::shared_mutex> OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name)

◆ OGRE_LOCK_RW_MUTEX_WRITE

#define OGRE_LOCK_RW_MUTEX_WRITE ( name)    std::unique_lock<std::shared_mutex> OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name)

◆ OGRE_MUTEX

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

◆ OGRE_MUTEX_CONDITIONAL

#define OGRE_MUTEX_CONDITIONAL ( mutex)    if (mutex)

◆ OGRE_NEW_AUTO_SHARED_MUTEX

#define OGRE_NEW_AUTO_SHARED_MUTEX   assert(!OGRE_AUTO_MUTEX_NAME); OGRE_AUTO_MUTEX_NAME = new std::recursive_mutex()

◆ OGRE_RW_MUTEX

#define OGRE_RW_MUTEX ( name)    mutable std::shared_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 std::recursive_mutex name

◆ OGRE_STATIC_MUTEX_INSTANCE

#define OGRE_STATIC_MUTEX_INSTANCE ( name)    std::recursive_mutex name

◆ OGRE_THREAD_CREATE

#define OGRE_THREAD_CREATE ( name,
worker )   std::thread* name = OGRE_NEW_T(std::thread, MEMCATEGORY_GENERAL)(worker)

◆ OGRE_THREAD_CURRENT_ID

#define OGRE_THREAD_CURRENT_ID   std::this_thread::get_id()

◆ OGRE_THREAD_DESTROY

#define OGRE_THREAD_DESTROY ( name)    OGRE_DELETE_T(name, thread, MEMCATEGORY_GENERAL)

◆ OGRE_THREAD_HARDWARE_CONCURRENCY

#define OGRE_THREAD_HARDWARE_CONCURRENCY   std::thread::hardware_concurrency()

◆ OGRE_THREAD_ID_TYPE

#define OGRE_THREAD_ID_TYPE   std::thread::id

◆ OGRE_THREAD_NOTIFY_ALL

#define OGRE_THREAD_NOTIFY_ALL ( sync)    sync.notify_all()

◆ OGRE_THREAD_NOTIFY_ONE

#define OGRE_THREAD_NOTIFY_ONE ( sync)    sync.notify_one()

◆ OGRE_THREAD_POINTER

#define OGRE_THREAD_POINTER ( T,
var )   Ogre::ThreadLocalPtr<T> var

◆ OGRE_THREAD_POINTER_DELETE

#define OGRE_THREAD_POINTER_DELETE ( var)    var.reset(0)

◆ OGRE_THREAD_POINTER_GET

#define OGRE_THREAD_POINTER_GET ( var)    var.get()

◆ OGRE_THREAD_POINTER_INIT

#define OGRE_THREAD_POINTER_INIT ( var)    var()

◆ OGRE_THREAD_POINTER_SET

#define OGRE_THREAD_POINTER_SET ( var,
expr )   var.reset(expr)

◆ OGRE_THREAD_POINTER_VAR

#define OGRE_THREAD_POINTER_VAR ( T,
var )   Ogre::ThreadLocalPtr<T> var ()

◆ OGRE_THREAD_SLEEP

#define OGRE_THREAD_SLEEP ( ms)    std::this_thread::sleep_for(std::chrono::milliseconds(ms))

◆ OGRE_THREAD_SYNCHRONISER

#define OGRE_THREAD_SYNCHRONISER ( sync)    std::condition_variable_any sync

◆ OGRE_THREAD_TYPE

#define OGRE_THREAD_TYPE   std::thread

◆ OGRE_THREAD_WAIT

#define OGRE_THREAD_WAIT ( sync,
mutex,
lock )   sync.wait(lock)

◆ OGRE_THREAD_WORKER_INHERIT

#define OGRE_THREAD_WORKER_INHERIT

◆ OGRE_THREAD_YIELD

#define OGRE_THREAD_YIELD   std::this_thread::yield()

◆ OGRE_TOKEN_PASTE

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

◆ OGRE_TOKEN_PASTE_EXTRA

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