Eliminating Data Races in Firefox – A Technical Report
The Mozilla Hacks site has areport on the use of ThreadSanitizer to detect and fix data races inthe Firefox browser. "While benign data races do exist, we foundthat data races arevery easily misclassified as benign. The reasons for this are clear: It ishard to reason about what compilers can and will optimize, and confirmationfor certain 'benign' data races requires you to look at the assembler codethat the compiler finally produces. Needless to say, this procedure isoften much more time consuming than fixing the actual data race and alsonot future-proof. As a result, we decided that the ultimate goal should bea 'no data races' policy that declares even benign data races asundesirable due to their risk of misclassification, the required time forinvestigation and the potential risk from future compilers (with betteroptimizations) or future platforms (e.g. ARM)."