# Run-time flags: envvar TSAN_OPTIONS="';' delimited option list" # Useful options (full list see https://github.com/google/sanitizers/wiki/ThreadSanitizerFlags): # suppressions= # verosity=n Verbosity level (0 - silent, 1 - a bit of output, 2+ - more output). # history_size=[0..7], default 2 # detect_deadlocks=0 - some data structs in libcds tests use a lot of node-level mutexes. # TSan has the hardcoded limit =16 for the number of mutex per thread. # To prevent "possibly deadlock" reporting disable deadlock detection. # Suppression can help in that case but stack unwinding increases # test time significantly. # false: LazyList potential deadlock deadlock:cds/intrusive/impl/lazy_list.h deadlock:cds/intrusive/lazy_list_nogc.h # false: BronsonAVLTree potential deadlock deadlock:cds/container/impl/bronson_avltree_map_rcu.h #TODO: temporary suppressed. Must be researched later race:cds/container/impl/bronson_avltree_map_rcu.h #TODO: MSPriorityQueue - temporary suppressed. Must be researched later # Seems, TSan don't see spinlock blocking. How to learn TSan to see non-traditional locking algo?.. race:cds::intrusive::MSPriorityQueue #TODO: gc::DHP must be reimplemented ASAP race:cds::gc::dhp::GarbageCollector::scan