3 * Contains inline functions to explicitly mark data races that should not be changed.
4 * This way, instruments like Clang's ThreadSanitizer can be told to ignore very specific instructions.
6 * Licensed under the MIT license. See LICENSE file in the project root for full license information.
13 #include <mono/utils/mono-compiler.h>
15 #if MONO_HAS_CLANG_THREAD_SANITIZER
16 #define MONO_UNLOCKED_ATTRS MONO_NO_SANITIZE_THREAD MONO_NEVER_INLINE static
18 #define MONO_UNLOCKED_ATTRS MONO_ALWAYS_INLINE static inline
23 UnlockedIncrement (gint32 *val)
30 UnlockedIncrement64 (gint64 *val)
37 UnlockedIncrementSize (gsize *val)
44 UnlockedAdd64 (gint64 *dest, gint64 add)
51 UnlockedSubtract64 (gint64 *dest, gint64 sub)
58 UnlockedRead64 (gint64 *src)
63 #endif /* _UNLOCKED_H_ */