24 typedef void *UnalignedPointer;
25 typedef UnalignedPointer Pointer;
28#elif defined(THREAD_DUMMY_IMPL) || defined(THREAD_SIMPLE_IMPL)
33#elif (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) || (defined(__clang__) && (__clang_major__ >= 3))
38typedef AtomicAdjustGccImpl AtomicAdjust;
40#if (__GCC_ATOMIC_INT_LOCK_FREE + __GCC_ATOMIC_LONG_LOCK_FREE) > 0
41#define HAVE_ATOMIC_COMPARE_AND_EXCHANGE 1
43#if __GCC_ATOMIC_POINTER_LOCK_FREE > 0
44#define HAVE_ATOMIC_COMPARE_AND_EXCHANGE_PTR 1
47#elif (defined(__i386__) || defined(_M_IX86)) && !defined(__APPLE__)
53typedef AtomicAdjustI386Impl AtomicAdjust;
59#define HAVE_ATOMIC_COMPARE_AND_EXCHANGE 1
60#define HAVE_ATOMIC_COMPARE_AND_EXCHANGE_PTR 1
62#elif defined(THREAD_WIN32_IMPL)
65typedef AtomicAdjustWin32Impl AtomicAdjust;
67#define HAVE_ATOMIC_COMPARE_AND_EXCHANGE 1
68#define HAVE_ATOMIC_COMPARE_AND_EXCHANGE_PTR 1
70#elif defined(THREAD_LINUX_IMPL)
72#error Linux native threads are currently implemented only for i386; use Posix threads instead.
74#elif defined(THREAD_POSIX_IMPL)
77typedef AtomicAdjustPosixImpl AtomicAdjust;
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A trivial implementation for atomic adjustments for systems that don't require multiprogramming,...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.