[cpp-threads] Revised Atomic Paper

Ben Hutchings ben at decadent.org.uk
Wed Aug 15 23:15:32 BST 2007


In "Prior Approaches", the URL to N2153 is wrong; "n2153.html" should be
"n2153.pdf".

In "Current Approach" paragraph 7, "may not depend" should probably be
"must not depend" ("may not" is ambiguous).  Also "of class of a
programs" should be "of a class of programs".

In "Memory Model Interaction" paragraph 1, "to the thread performing
subsequent acquire operation" should probably be "to a thread performing
a subsequent acquire operation".

In paragraph 8, "per-variables fences" should be "per-variable fences".

In "Summary of Types and Operations" paragraph 6, "enforce the
properties parameter type" should probably be "enforce these properties
on a parameter type" or "require these properties of a parameter type".
Also, should "parameter type" be "type parameter"?  Finally, "we do not
employ have not yet employed" should say one or the other!

In paragraph 10, "The compare-and-swap modify" should be "The
compare-and-swap functions replace".

In the CAS loop, the loop condition needs to be inverted.

In "Implementability" paragraph 1, "implementability" is misspelt. ;-)

In "Remaining Issues" paragraph 1, "This The issue as is" should
probably be "The issue is".

In paragraphs 4 and 5, "desirable" is misspelt.

In "Headers", "also" should be "and also".  Is it correct that
operations are not exported to the global namespace?  (Presumably they
can be found by ADL?)

In "Memory Order" paragraph 1, under "memory_order_release" and
"memory_order_acquire", "operations that load" and "operations that
store" are the wrong way round.  Also, under "memory_order_seq_cst",
"and addition" should be "and in addition".

In paragraph 2 point 3, "starts consists of", should be "consists of".

In "Atomic Operations" paragraph 1, "Implicitly" should perhaps be "By
default".

Under "swap", "and returns" should be "and return".  Also, "both the
evaluation that produced the input value, and the operation itself,
synchronizes with" should be something like "any such operation and the
evaluation that produces the new value for that operation both
synchronize with".

Under "compare-and-swap", there should be a comma before "if equal".

Under "fence", "both the evaluation that produced the input value, and
the operation itself, synchronizes with" does not make sense because
there is no input value.

Under "fetch-and-{add,sub,and,or,xor}", "twos-complement" should have an
apostrophe after "two".  Also, "both the evaluation that produced the
input value, and the operation itself, synchronizes with" should be
something like "any such operation and the evaluation that produces the
augend for that operation both synchronize with".

In paragraph 3, "volatile qualified" should be hyphenated.  Also,
"operatoins" should be deleted.

In "Lock-Free Property", paragraph 1, "all operations are wait-free or
none of them are" is wrong and was probably supposed to say that about
the lock-free property.  The following sentences in the paragraph should
be deleted.

Ben.

-- 
Ben Hutchings
Sturgeon's Law: Ninety percent of everything is crap.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://www.decadentplace.org.uk/pipermail/cpp-threads/attachments/20070815/cf38596a/attachment.pgp 


More information about the cpp-threads mailing list