@@ -312,7 +312,7 @@ implementers.
312312A happens-before race that's not a sequentially-consistent race
313313---------------------------------------------------------------
314314
315- From the POPL paper about the Java memory model [#JMM-popl].
315+ From the POPL paper about the Java memory model [#JMM-popl ]_ .
316316
317317 Initially, ``x == y == 0 ``.
318318
@@ -364,7 +364,7 @@ machinery you need to prove it.
364364Self-justifying values
365365----------------------
366366
367- Also from the POPL paper about the Java memory model [#JMM-popl].
367+ Also from the POPL paper about the Java memory model [#JMM-popl ]_ .
368368
369369 Initially, ``x == y == 0 ``.
370370
@@ -552,7 +552,7 @@ that, and Python may not need those security guarantees anyway.
552552Restrict reorderings instead of defining happens-before
553553--------------------------------------------------------
554554
555- The .NET [#CLR-msdn] and x86 [#x86-model] memory models are based on
555+ The .NET [#CLR-msdn ]_ and x86 [#x86-model ]_ memory models are based on
556556defining which reorderings compilers may allow. I think that it's
557557easier to program to a happens-before model than to reason about all
558558of the possible reorderings of a program, and it's easier to insert
@@ -772,6 +772,18 @@ Jython.
772772
773773References
774774==========
775+ * Alternatives to SC, a thread on the cpp-threads mailing list,
776+ which includes lots of good examples.
777+ (http://www.decadentplace.org.uk/pipermail/cpp-threads/2007-January/001287.html)
778+
779+ * python-safethread, a patch by Adam Olsen for CPython
780+ that removes the GIL and statically guarantees that all objects
781+ shared between threads are consistently
782+ locked. (http://code.google.com/p/python-safethread/)
783+ * N2480: A Less Formal Explanation of the
784+ Proposed C++ Concurrency Memory Model, Hans Boehm
785+ (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2480.html)
786+
775787
776788.. _Java Memory Model : http://java.sun.com/docs/books/jls/third_edition/html/memory.html
777789
@@ -784,10 +796,6 @@ References
784796 lots of examples of compiler/processor optimizations and the
785797 strange program behaviors they can produce.
786798
787- .. [#Cpp0x-memory-model ] N2480: A Less Formal Explanation of the
788- Proposed C++ Concurrency Memory Model, Hans Boehm
789- (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2480.html)
790-
791799 .. [#CLR-msdn ] Memory Models: Understand the Impact of Low-Lock
792800 Techniques in Multithreaded Apps, Vance Morrison
793801 (http://msdn2.microsoft.com/en-us/magazine/cc163715.aspx)
@@ -804,15 +812,6 @@ References
804812
805813 .. [#slots ] __slots__ (http://docs.python.org/ref/slots.html)
806814
807- .. [# ] Alternatives to SC, a thread on the cpp-threads mailing list,
808- which includes lots of good examples.
809- (http://www.decadentplace.org.uk/pipermail/cpp-threads/2007-January/001287.html)
810-
811- .. [#safethread ] python-safethread, a patch by Adam Olsen for CPython
812- that removes the GIL and statically guarantees that all objects
813- shared between threads are consistently
814- locked. (http://code.google.com/p/python-safethread/)
815-
816815
817816 Acknowledgements
818817================
0 commit comments