Files
unity/crnlib/crn_win32_threading.cpp
T
richgel99@gmail.com 9f98ea7e22
2011-12-27 21:18:07 +00:00

37 lines
1.0 KiB
C++

// File: crn_win32_threading.cpp
// See Copyright Notice and license at the end of inc/crnlib.h
#include "crn_core.h"
#include "crn_win32_threading.h"
#include "crn_winhdr.h"
namespace crnlib
{
uint g_number_of_processors = 1;
int32 interlocked_compare_exchange32(int32 volatile *Destination, int32 Exchange, int32 Comperand)
{
CRNLIB_ASSUME(sizeof(LONG) == sizeof(int32));
return InterlockedCompareExchange((volatile LONG*)Destination, Exchange, Comperand);
}
int32 interlocked_increment32(int32 volatile *lpAddend)
{
return InterlockedIncrement((volatile LONG*)lpAddend);
}
int32 interlocked_exchange_add32(int32 volatile *Addend, int32 Value)
{
return InterlockedExchangeAdd((volatile LONG*)Addend, Value);
}
int32 interlocked_exchange32(int32 volatile *Target, int32 Value)
{
return InterlockedExchange((volatile LONG*)Target, Value);
}
uint32 get_current_thread_id()
{
return GetCurrentThreadId();
}
}