atomic.cpp

来自「跨操作系统的微型中间件」· C++ 代码 · 共 42 行

CPP
42
字号
#include "atomic.h"#include "OSMutex.h"static OSMutex sAtomicMutex;unsigned int atomic_add(unsigned int *area, int val){    OSMutexLocker locker(&sAtomicMutex);    *area += val;    return *area;}unsigned int atomic_sub(unsigned int *area,int val){    return atomic_add(area,-val);}unsigned int atomic_or(unsigned int *area, unsigned int val){    unsigned int oldval;    OSMutexLocker locker(&sAtomicMutex);    oldval=*area;    *area = oldval | val;    return oldval;}unsigned int compare_and_store(unsigned int oval, unsigned int nval, unsigned int *area){   int rv;    OSMutexLocker locker(&sAtomicMutex);    if( oval == *area )    {    rv=1;    *area = nval;    }    else    rv=0;    return rv;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?