Re: JavaMemoryModel: "synchronizes with"

From: Thomas Wang (
Date: Thu Mar 25 2004 - 12:47:59 EST

>From: Doug Lea <>
>Thanks to Bart for proposing a rigorous definition of "synchronizes with".
>A proposed further variant is below.

>But first, more motivation. As I've already whined about, the
>terminology here is at best crummy. If you try to teach or explain the
>central happens-before relation, you will probably see students and
>programmers say things like: "does this event happen before this other
>event that it happens before?". And get confused, and give up or screw

In the Intel documentation, the term "made visible" is used.

EG. Before a volatile write can be made visible, all previous memory
operations must be made visible.

EG. A volatile read must be made visible before any subsequent memory
operations can be made visible.

EG. If a volatile write or a semaphore operation is made visible to
a thread, then it is visible to all threads.

The terms "previous" and "subsequent" are used to refer to the program
specified order. The term "visible" is used to refer to all
architecturally visible effects of performing a memory access (at a
minimum this involves reading or writing memory).

I got used to this phrasing fairly quickly. All the terms are regular
English words rather than made up phrases, which I think is an advantage.


 Thomas Wang

JavaMemoryModel mailing list -

This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:01:01 EDT