#include <dispenso/platform.h>
Go to the source code of this file.
Macros | |
#define | DISPENSO_HAS_TSAN 0 |
#define | DISPENSO_TSAN_ANNOTATE_IGNORE_WRITES_BEGIN() |
#define | DISPENSO_TSAN_ANNOTATE_IGNORE_WRITES_END() |
#define | DISPENSO_TSAN_ANNOTATE_IGNORE_READS_BEGIN() |
#define | DISPENSO_TSAN_ANNOTATE_IGNORE_READS_END() |
#define | DISPENSO_TSAN_ANNOTATE_NEW_MEMORY(address, size) |
#define | DISPENSO_TSAN_ANNOTATE_HAPPENS_BEFORE(address) |
#define | DISPENSO_TSAN_ANNOTATE_HAPPENS_AFTER(address) |
This file exposes a set of macros for ignoring tsan errors. These should generally not be used just to shut up TSAN, because most of the time, TSAN reports real bugs. They should be used only when there is a high level of certainty that TSAN is spitting out a false positive, as can occasionally happen with lock-free algorithms.
When these are required, it is best to keep the scope as small as possible to avoid blinding TSAN to real bugs. Note that several libraries already expose macros like these, but we want to keep dependencies to a bare minimum.
Definition in file tsan_annotations.h.
#define DISPENSO_HAS_TSAN 0 |
Definition at line 33 of file tsan_annotations.h.
#define DISPENSO_TSAN_ANNOTATE_HAPPENS_AFTER | ( | address | ) |
Definition at line 76 of file tsan_annotations.h.
#define DISPENSO_TSAN_ANNOTATE_HAPPENS_BEFORE | ( | address | ) |
Definition at line 75 of file tsan_annotations.h.
#define DISPENSO_TSAN_ANNOTATE_IGNORE_READS_BEGIN | ( | ) |
Definition at line 72 of file tsan_annotations.h.
#define DISPENSO_TSAN_ANNOTATE_IGNORE_READS_END | ( | ) |
Definition at line 73 of file tsan_annotations.h.
#define DISPENSO_TSAN_ANNOTATE_IGNORE_WRITES_BEGIN | ( | ) |
Definition at line 70 of file tsan_annotations.h.
#define DISPENSO_TSAN_ANNOTATE_IGNORE_WRITES_END | ( | ) |
Definition at line 71 of file tsan_annotations.h.
#define DISPENSO_TSAN_ANNOTATE_NEW_MEMORY | ( | address, | |
size | |||
) |
Definition at line 74 of file tsan_annotations.h.