OGRE  1.10.12
Object-Oriented Graphics Rendering Engine
OgreThreadDefinesPoco.h File Reference

Macros

#define OGRE_AUTO_MUTEX   mutable Poco::Mutex OGRE_AUTO_MUTEX_NAME
 
#define OGRE_AUTO_SHARED_MUTEX   mutable Poco::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   assert(OGRE_AUTO_MUTEX_NAME); delete OGRE_AUTO_MUTEX_NAME
 
#define OGRE_LOCK_AUTO_MUTEX   Poco::Mutex::ScopedLock ogreAutoMutexLock(OGRE_AUTO_MUTEX_NAME)
 
#define OGRE_LOCK_AUTO_SHARED_MUTEX   assert(OGRE_AUTO_MUTEX_NAME); Poco::Mutex::ScopedLock ogreAutoMutexLock(*OGRE_AUTO_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 Poco::Mutex()
 
#define OGRE_SET_AUTO_SHARED_MUTEX_NULL   OGRE_AUTO_MUTEX_NAME = 0
 
#define OGRE_STATIC_MUTEX(name)   static Poco::Mutex name
 
#define OGRE_STATIC_MUTEX_INSTANCE(name)   Poco::Mutex name
 
#define OGRE_THREAD_CREATE(name, worker)   Poco::Thread* name = OGRE_NEW_T(Poco::Thread, MEMCATEGORY_GENERAL)(); name->start(worker)
 
#define OGRE_THREAD_CURRENT_ID   (size_t)Poco::Thread::current()
 
#define OGRE_THREAD_DESTROY(name)   OGRE_DELETE_T(name, Thread, MEMCATEGORY_GENERAL)
 
#define OGRE_THREAD_HARDWARE_CONCURRENCY   Poco::Environment::processorCount()
 
#define OGRE_THREAD_ID_TYPE   size_t
 
#define OGRE_THREAD_NOTIFY_ALL(sync)   sync.broadcast()
 
#define OGRE_THREAD_NOTIFY_ONE(sync)   sync.signal()
 
#define OGRE_THREAD_POINTER(T, var)   Poco::ThreadLocal<SharedPtr<T> > var
 
#define OGRE_THREAD_POINTER_DELETE(var)   var.get().reset()
 
#define OGRE_THREAD_POINTER_GET(var)   var.get().get()
 
#define OGRE_THREAD_POINTER_INIT(var)   var()
 
#define OGRE_THREAD_POINTER_SET(var, expr)   do { var.get().reset(); var.get().bind(expr); } while (0)
 
#define OGRE_THREAD_POINTER_VAR(T, var)   Poco::ThreadLocal<SharedPtr<T> > var
 
#define OGRE_THREAD_SLEEP(ms)   Poco::Thread::sleep(ms)
 
#define OGRE_THREAD_TYPE   Poco::Thread
 
#define OGRE_THREAD_WAIT(sync, mutex, lock)   sync.wait(mutex)
 
#define OGRE_THREAD_WORKER_INHERIT   : public Poco::Runnable
 
#define OGRE_THREAD_YIELD   Poco::Thread::yield()
 
#define OGRE_TOKEN_PASTE(x, y)   x ## y
 
#define OGRE_TOKEN_PASTE_EXTRA(x, y)   OGRE_TOKEN_PASTE(x, y)
 
#define OGRE_WQ_LOCK_MUTEX(name)   Poco::Mutex::ScopedLock OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name)
 
#define OGRE_WQ_LOCK_MUTEX_NAMED(mutexName, lockName)   Poco::Mutex::ScopedLock lockName(mutexName)
 
#define OGRE_WQ_LOCK_RW_MUTEX_READ(name)   Poco::RWLock::ScopedLock OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name, false)
 
#define OGRE_WQ_LOCK_RW_MUTEX_WRITE(name)   Poco::RWLock::ScopedLock OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name, true)
 
#define OGRE_WQ_MUTEX(name)   mutable Poco::Mutex name
 
#define OGRE_WQ_RW_MUTEX(name)   mutable Poco::RWLock name
 
#define OGRE_WQ_THREAD_SYNCHRONISER(sync)   Poco::Condition sync
 

Macro Definition Documentation

◆ 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)

◆ OGRE_THREAD_TYPE

#define OGRE_THREAD_TYPE   Poco::Thread

◆ OGRE_THREAD_CREATE

#define OGRE_THREAD_CREATE (   name,
  worker 
)    Poco::Thread* name = OGRE_NEW_T(Poco::Thread, MEMCATEGORY_GENERAL)(); name->start(worker)

◆ OGRE_THREAD_DESTROY

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

◆ OGRE_THREAD_HARDWARE_CONCURRENCY

#define OGRE_THREAD_HARDWARE_CONCURRENCY   Poco::Environment::processorCount()

◆ OGRE_THREAD_CURRENT_ID

#define OGRE_THREAD_CURRENT_ID   (size_t)Poco::Thread::current()

◆ OGRE_THREAD_WORKER_INHERIT

#define OGRE_THREAD_WORKER_INHERIT   : public Poco::Runnable

◆ OGRE_WQ_MUTEX

#define OGRE_WQ_MUTEX (   name)    mutable Poco::Mutex name

◆ OGRE_WQ_LOCK_MUTEX

#define OGRE_WQ_LOCK_MUTEX (   name)    Poco::Mutex::ScopedLock OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name)

◆ OGRE_WQ_LOCK_MUTEX_NAMED

#define OGRE_WQ_LOCK_MUTEX_NAMED (   mutexName,
  lockName 
)    Poco::Mutex::ScopedLock lockName(mutexName)

◆ OGRE_WQ_RW_MUTEX

#define OGRE_WQ_RW_MUTEX (   name)    mutable Poco::RWLock name

◆ OGRE_WQ_LOCK_RW_MUTEX_READ

#define OGRE_WQ_LOCK_RW_MUTEX_READ (   name)    Poco::RWLock::ScopedLock OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name, false)

◆ OGRE_WQ_LOCK_RW_MUTEX_WRITE

#define OGRE_WQ_LOCK_RW_MUTEX_WRITE (   name)    Poco::RWLock::ScopedLock OGRE_TOKEN_PASTE_EXTRA(ogrenameLock, __LINE__) (name, true)

◆ OGRE_WQ_THREAD_SYNCHRONISER

#define OGRE_WQ_THREAD_SYNCHRONISER (   sync)    Poco::Condition sync

◆ OGRE_THREAD_WAIT

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

◆ OGRE_THREAD_NOTIFY_ONE

#define OGRE_THREAD_NOTIFY_ONE (   sync)    sync.signal()

◆ OGRE_THREAD_NOTIFY_ALL

#define OGRE_THREAD_NOTIFY_ALL (   sync)    sync.broadcast()

◆ OGRE_AUTO_MUTEX

#define OGRE_AUTO_MUTEX   mutable Poco::Mutex OGRE_AUTO_MUTEX_NAME

◆ OGRE_LOCK_AUTO_MUTEX

#define OGRE_LOCK_AUTO_MUTEX   Poco::Mutex::ScopedLock ogreAutoMutexLock(OGRE_AUTO_MUTEX_NAME)

◆ OGRE_STATIC_MUTEX

#define OGRE_STATIC_MUTEX (   name)    static Poco::Mutex name

◆ OGRE_STATIC_MUTEX_INSTANCE

#define OGRE_STATIC_MUTEX_INSTANCE (   name)    Poco::Mutex name

◆ OGRE_AUTO_SHARED_MUTEX

#define OGRE_AUTO_SHARED_MUTEX   mutable Poco::Mutex *OGRE_AUTO_MUTEX_NAME

◆ OGRE_LOCK_AUTO_SHARED_MUTEX

#define OGRE_LOCK_AUTO_SHARED_MUTEX   assert(OGRE_AUTO_MUTEX_NAME); Poco::Mutex::ScopedLock ogreAutoMutexLock(*OGRE_AUTO_MUTEX_NAME)

◆ OGRE_NEW_AUTO_SHARED_MUTEX

#define OGRE_NEW_AUTO_SHARED_MUTEX   assert(!OGRE_AUTO_MUTEX_NAME); OGRE_AUTO_MUTEX_NAME = new Poco::Mutex()

◆ OGRE_DELETE_AUTO_SHARED_MUTEX

#define OGRE_DELETE_AUTO_SHARED_MUTEX   assert(OGRE_AUTO_MUTEX_NAME); delete 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_SET_AUTO_SHARED_MUTEX_NULL

#define OGRE_SET_AUTO_SHARED_MUTEX_NULL   OGRE_AUTO_MUTEX_NAME = 0

◆ OGRE_MUTEX_CONDITIONAL

#define OGRE_MUTEX_CONDITIONAL (   mutex)    if (mutex)

◆ OGRE_THREAD_POINTER

#define OGRE_THREAD_POINTER (   T,
  var 
)    Poco::ThreadLocal<SharedPtr<T> > var

◆ OGRE_THREAD_POINTER_INIT

#define OGRE_THREAD_POINTER_INIT (   var)    var()

◆ OGRE_THREAD_POINTER_VAR

#define OGRE_THREAD_POINTER_VAR (   T,
  var 
)    Poco::ThreadLocal<SharedPtr<T> > var

◆ OGRE_THREAD_POINTER_GET

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

◆ OGRE_THREAD_POINTER_SET

#define OGRE_THREAD_POINTER_SET (   var,
  expr 
)    do { var.get().reset(); var.get().bind(expr); } while (0)

◆ OGRE_THREAD_POINTER_DELETE

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

◆ OGRE_THREAD_SLEEP

#define OGRE_THREAD_SLEEP (   ms)    Poco::Thread::sleep(ms)

◆ OGRE_THREAD_ID_TYPE

#define OGRE_THREAD_ID_TYPE   size_t

◆ OGRE_THREAD_YIELD

#define OGRE_THREAD_YIELD   Poco::Thread::yield()