Skip to content

Commit f0c4cce

Browse files
committed
Improve description of what MM is
1 parent d4dc311 commit f0c4cce

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

doc/synchronization.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,16 @@ time-consuming and error-prone.
3232
# Ruby memory model
3333

3434
The Ruby memory model is a framework allowing to reason about programs in
35-
concurrent and parallel environment. It allows to identify what is and what
36-
is not a [race condition](https://en.wikipedia.org/wiki/Race_condition).
37-
The memory model is also a contract: if a program is written without race
38-
conditions it behaves in
39-
[sequential consistent](https://en.wikipedia.org/wiki/Sequential_consistency)
40-
manner.
35+
concurrent and parallel environment. It defines what variable writes can be
36+
observed by a particular variable read, which is essential to be able to
37+
determine if a program is correct. It is achieved be defining what subset of
38+
all possible program execution orders is allowed.
4139

4240
A memory model sources:
4341

4442
- [Java memory model](http://www.cs.umd.edu/~pugh/java/memoryModel/),
4543
and its [FAQ](http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html)
44+
- [Java Memory Model Pragmatics](http://shipilev.net/blog/2014/jmm-pragmatics/)
4645
- [atomic<> Weapons 1](https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-1-of-2)
4746
and
4847
[2](https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-2-of-2)

0 commit comments

Comments
 (0)