TSan recently got the "ignore_noninstrumented_modules" flag, which disables tracking of read and writes that come from noninstrumented modules (via interceptors). This is a way of suppressing false positives coming from system libraries and other noninstrumented code. This patch turns this on by default on Darwin, where it's supposed to replace the previous solution, "ignore_interceptors_accesses", which disables tracking in *all* interceptors. The new approach should re-enable TSan's ability to find races via interceptors on Darwin.
Details
Details
Diff Detail
Diff Detail
Event Timeline
test/tsan/lit.cfg | ||
---|---|---|
30 | ignore_noninstrumented_modules=0 works because the generic tests use only libc and don't use any darwin-specific libraries, and tsan runtime handles most of the libc functions, right? |
test/tsan/lit.cfg | ||
---|---|---|
30 | That's correct. Libc doesn't really do any threading stuff unless you explicitly use pthread APIs. Darwin-specific libraries do (XPC, dispatch, NSOperationQueue, ...). |
ignore_noninstrumented_modules=0 works because the generic tests use only libc and don't use any darwin-specific libraries, and tsan runtime handles most of the libc functions, right?