2016년 4월 5일 화요일

InterlockedCompareExchange64() pseudo code

longlong InterlockedCompareExchange64(longlong volatile * dest, longlong exchange, longlong comparand);

얘는 요렇게 동작한다.

longlong InterlockedCompare(
    longlong volatile * dest,
    longlong exchange,
    longlong comparand)
{
    longlong tmp = *dest;
    if (tmp == comparand)
    {
        *dest = exchange;
    }
    return tmp;
}

요걸 atomic하게 한다

댓글 없음:

댓글 쓰기