xrootd
Macros
XrdSysAtomics.hh File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define AtomicBeg(Mtx)   Mtx.Lock()
 
#define AtomicEnd(Mtx)   Mtx.UnLock()
 
#define AtomicAdd(x, y)   x += y
 
#define AtomicFAdd(w, x, y)   {w = x; x += y;}
 
#define AtomicCAS(x, y, z)   if (x == y) x = z
 
#define AtomicDec(x)   x--
 
#define AtomicFAZ(x)   x; x = 0
 
#define AtomicFZAP(w, x)   {w = x; x = 0;}
 
#define AtomicGet(x)   x
 
#define AtomicInc(x)   x++
 
#define AtomicSub(x, y)   x -= y
 
#define AtomicFSub(w, x, y)   {w = x; x -= y;}
 
#define AtomicZAP(x)   x = 0
 
#define AtomicRet(mtx, x)
 
#define CPP_ATOMIC_LOAD(x, order)   x
 
#define CPP_ATOMIC_STORE(x, val, order)   x = val
 
#define CPP_ATOMIC_TYPE(kind)   kind
 

Macro Definition Documentation

#define AtomicAdd (   x,
 
)    x += y
#define AtomicBeg (   Mtx)    Mtx.Lock()
#define AtomicCAS (   x,
  y,
 
)    if (x == y) x = z
#define AtomicDec (   x)    x--
#define AtomicEnd (   Mtx)    Mtx.UnLock()
#define AtomicFAdd (   w,
  x,
 
)    {w = x; x += y;}
#define AtomicFAZ (   x)    x; x = 0
#define AtomicFSub (   w,
  x,
 
)    {w = x; x -= y;}
#define AtomicFZAP (   w,
 
)    {w = x; x = 0;}
#define AtomicGet (   x)    x
#define AtomicInc (   x)    x++
#define AtomicRet (   mtx,
 
)
Value:
{mtx.Lock(); int _ ## x = x; \
mtx.UnLock(); return _ ## x;}
#define AtomicSub (   x,
 
)    x -= y
#define AtomicZAP (   x)    x = 0
#define CPP_ATOMIC_LOAD (   x,
  order 
)    x
#define CPP_ATOMIC_STORE (   x,
  val,
  order 
)    x = val
#define CPP_ATOMIC_TYPE (   kind)    kind