Skip to content
This repository has been archived by the owner on Jan 25, 2022. It is now read-only.

Commit

Permalink
Fix Issue #58
Browse files Browse the repository at this point in the history
  • Loading branch information
Lars T Hansen committed Feb 10, 2016
1 parent 8610903 commit f70c918
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
16 changes: 13 additions & 3 deletions tc39/shmem.html
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,10 @@ <h1><span class="secnum"></span>Introduction<span class="utils"><span class="anc

<p>Changelog:</p>
<ul>
<li> 2016-02-10 -- (Issue 60) <emu-xref aoid="ValidateSharedIntegerTypedArray"><a href="#Atomics.ValidateSharedIntegerTypedArray">ValidateSharedIntegerTypedArray</a></emu-xref> needs to check for a TypedArrayName slot.
<li> 2016-02-10 -- (Issue 58) Clarified with a NOTE that no additional rule is needed to establish a happens-before relationship from an atomic write to a futexWait or futexWakeOrRequeue that returns NOTEQUAL.

</li><li> 2016-02-10 -- (Issue 60) <emu-xref aoid="ValidateSharedIntegerTypedArray"><a href="#Atomics.ValidateSharedIntegerTypedArray">ValidateSharedIntegerTypedArray</a></emu-xref> needs to check for a TypedArrayName slot.

</li><li> 2016-01-23 -- Removed a reference to the note that was removed yesterday.

</li><li> 2016-01-22 -- (Issue 43) Clarified language. Removed part of a note that attempted to explain an illegal optimization but got it wrong; will be re-introduced later.
Expand Down Expand Up @@ -590,6 +592,14 @@ <h1><span class="secnum">7.2.1</span>With atomic access to ( buffer, indexedPosi
<p> Executions must be such that <em>happens before</em> is
irreflexive (acyclic). </p>

<emu-note><span class="note">Note 3</span>
<p> If a call to Atomics.futexWait or
Atomics.futexWakeOrRequeue returns Atomics.NOTEQUAL then
there is a happens-before relation between any atomic write
that wrote the slot that is read by those functions, because
those functions use an atomic read to read that slot. </p>
</emu-note>

<p> A data access read R only sees a write W that happens before
R, where there is no write V such that V happens before R and
W happens before V. </p>
Expand All @@ -607,7 +617,7 @@ <h1><span class="secnum">7.2.1</span>With atomic access to ( buffer, indexedPosi
<p> A write involved in a data race stores a poison value that
can read back as anything whatsoever. </p>

<emu-note><span class="note">Note 3</span>
<emu-note><span class="note">Note 4</span>
<p> (Issue 22, broadly) There are problems with the preceding
clause. One problem is that the affected memory region in a
race is not properly defined. Another problem is semantic:
Expand All @@ -620,7 +630,7 @@ <h1><span class="secnum">7.2.1</span>With atomic access to ( buffer, indexedPosi
known. </p>
</emu-note>

<emu-note><span class="note">Note 4</span>
<emu-note><span class="note">Note 5</span>
<p> If the execution of an agent cluster has no data races, then
the agent cluster behaves according to one of its sequentially
consistent executions. </p>
Expand Down
11 changes: 10 additions & 1 deletion tc39/spec.html
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@ <h1>Introduction</h1>

<p>Changelog:</p>
<ul>
<li> 2016-02-10 -- (Issue 60) ValidateSharedIntegerTypedArray needs to check for a TypedArrayName slot.
<li> 2016-02-10 -- (Issue 58) Clarified with a NOTE that no additional rule is needed to establish a happens-before relationship from an atomic write to a futexWait or futexWakeOrRequeue that returns NOTEQUAL.
<li> 2016-02-10 -- (Issue 60) ValidateSharedIntegerTypedArray needs to check for a TypedArrayName slot.
<li> 2016-01-23 -- Removed a reference to the note that was removed yesterday.
<li> 2016-01-22 -- (Issue 43) Clarified language. Removed part of a note that attempted to explain an illegal optimization but got it wrong; will be re-introduced later.
<li> 2016-01-22 -- (Issue 41) Corrected a bug in yesterday's fix.
Expand Down Expand Up @@ -616,6 +617,14 @@ <h1>With atomic access to ( buffer, indexedPosition, elementSize )</h1>
<p> Executions must be such that <em>happens before</em> is
irreflexive (acyclic). </p>

<emu-note>
<p> If a call to Atomics.futexWait or
Atomics.futexWakeOrRequeue returns Atomics.NOTEQUAL then
there is a happens-before relation between any atomic write
that wrote the slot that is read by those functions, because
those functions use an atomic read to read that slot. </p>
</emu-note>

<p> A data access read R only sees a write W that happens before
R, where there is no write V such that V happens before R and
W happens before V. </p>
Expand Down

0 comments on commit f70c918

Please sign in to comment.