Skip to content

Commit d232cbd

Browse files
committed
add DNF footnote
1 parent 550fe3e commit d232cbd

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

detect_data_races_with_dtrace.html

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -627,9 +627,12 @@ <h2 id="benchmarks">
627627
</tr>
628628
<tr>
629629
<td>Racy program, release mode</td>
630-
<td>DNF</td>
631-
<td>DNF</td>
632-
<td>DNF</td>
630+
<td>DNF <sup class="footnote-ref"><a href="#fn-1" id="fnref-1" data-footnote-ref>1</a></sup>
631+
</td>
632+
<td>DNF <sup class="footnote-ref"><a href="#fn-1" id="fnref-1" data-footnote-ref>1</a></sup>
633+
</td>
634+
<td>DNF <sup class="footnote-ref"><a href="#fn-1" id="fnref-1" data-footnote-ref>1</a></sup>
635+
</td>
633636
</tr>
634637
<tr>
635638
<td>Program with mutex, release mode</td>
@@ -1130,6 +1133,15 @@ <h2 id="addendum-the-full-code">
11301133
<span class="line-number"></span><span class="code-hl">}</span>
11311134
</code></pre>
11321135
</details>
1136+
<section class="footnotes" data-footnotes>
1137+
<ol>
1138+
<li id="fn-1">
1139+
<p>
1140+
DNF means Did Not Finish, and that's because the compiler compiles the loop polling for the length of the array into an infinite loop with an empty body, because the read of the length is hoisted out of the loop body, as previously explained.<a href="#fnref-1" class="footnote-backref" data-footnote-backref data-footnote-backref-idx="1" aria-label="Back to reference 1"></a>
1141+
</p>
1142+
</li>
1143+
</ol>
1144+
</section>
11331145
<p><a href="/blog"> ⏴ Back to all articles</a></p>
11341146

11351147
<div id="donate">

detect_data_races_with_dtrace.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ And N concurrent readers are fine. In fact, if we comment out this condition, we
488488
| | Runtime | Runtime with Thread Sanitizer | Runtime with DTrace race detector |
489489
|-------------------------------------|---------|-------------------------------|-----------------------------------|
490490
| Racy program, debug mode | 6.3 ms | 275.8 ms | 7.05 s |
491-
| Racy program, release mode | DNF | DNF | DNF |
491+
| Racy program, release mode | DNF [^1]| DNF [^1] | DNF [^1] |
492492
| Program with mutex, release mode | 44.5 ms | 714 ms | 156 ms |
493493
| Program with RW lock, release mode | 4.3 s | 4.9 s | 4.2 s |
494494

@@ -501,6 +501,7 @@ How the benchmarks were done:
501501
- For the other columns, `hyperfine './cmd' --shell=none --warmup=3 -i` is used.
502502
- We do not care about the exact values, only about the slowdown ratio between the first column (without race detector) and the other columns (with race detector).
503503

504+
[^1]: DNF means Did Not Finish, and that's because the compiler compiles the loop polling for the length of the array into an infinite loop with an empty body, because the read of the length is hoisted out of the loop body, as previously explained.
504505

505506
Commentary:
506507

feed.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<feed xmlns="http://www.w3.org/2005/Atom">
33
<title>Philippe Gaultier's blog</title>
44
<link href="https://gaultier.github.io/blog"/>
5-
<updated>2026-03-19T08:26:22+01:00</updated>
5+
<updated>2026-03-19T08:30:52+01:00</updated>
66
<author>
77
<name>Philippe Gaultier</name>
88
</author>
@@ -397,7 +397,7 @@
397397
<title>Detect data races with DTrace in any language</title>
398398
<link href="https://gaultier.github.io/blog/detect_data_races_with_dtrace.html"/>
399399
<id>urn:uuid:413e821b-8449-5c1c-85d6-578aa3fe3f74</id>
400-
<updated>2026-03-19T08:26:22+01:00</updated>
400+
<updated>2026-03-19T08:30:52+01:00</updated>
401401
<published>2026-03-11T13:35:11+01:00</published>
402402
</entry>
403403
</feed>

0 commit comments

Comments
 (0)