You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
concurrentqueue/build/msvc12/msvc_tbb_stubs.cpp

32 lines
883 B
C++

#include "tbb/tbb_main.h"
#include "tbb/itt_notify.h"
#include <atomic>
namespace tbb {
namespace internal {
// Taken from tbb_main.cpp (which doesn't compile as-is)
void call_itt_notify_v5(int /*t*/, void* /*ptr*/) {}
void itt_store_pointer_with_release_v3(void* dst, void* src) {
ITT_NOTIFY(sync_releasing, dst);
__TBB_store_with_release(*static_cast<void**>(dst), src);
}
}
}
extern "C" {
#ifdef _WIN64
__int8 __TBB_machine_cmpswp1(volatile void *ptr, __int8 value, __int8 comparand) {
return _InterlockedCompareExchange8((__int8*)ptr, value, comparand);
}
#else
// Taken from tbb/machine/windows_intel64.h, which isn't included in 32-bit mode but is
// still used for some reason
__int64 __TBB_machine_cmpswp8(volatile void *ptr, __int64 value, __int64 comparand) {
return _InterlockedCompareExchange64((__int64*)ptr, value, comparand);
}
#endif
}