1.26.0
m3bm3b
tagged this
24 May 19:44
I had previously added some TSan dynamic annotations to nsync to avoid TSan race warnings. However, depending on whether gcc or clang was used, and depending on the version of clang used, TSan race warnings could be reported on the nsync tests. When TSan is in used, this change adds a call to AnnotateRWLockAcquired just after each nsync mu acquistion, and a call AnnotateRWLockReleased just before each release. Additionally, AnnotateRWLockCreate is called at each mu creation. (nsync mutex destruction is inferred when memory is recycled.) Macros are used so that these additional calls are not introduced when TSan is not in use. All tests now pass without warnings in TSan mode in both clang and gcc, including in all the versions that previously reported warnings. In addition, the version number is incremented, and there are a few minor whitespace changes to make the TSan annotations conform the the project's whitespace conventions.