[concurrency-interest] volatile guarantee for directbuffer

David Holmes davidcholmes at aapt.net.au
Wed Feb 15 04:18:21 EST 2012


Holger Peine writes:
> Am 15.02.2012 09:26, schrieb Christian Vest Hansen:
> > 
> > On Wed, Feb 15, 2012 at 07:59, Holger Peine <Holger.Peine at fh-hannover.de
> > <mailto:Holger.Peine at fh-hannover.de>> wrote:
> > 
> >     Am 14.02.2012 20:46, schrieb Boehm, Hans:
> >     > - If only v is volatile, then x = 1; v = 1; z = 1 does not ensure
> >     > that the write to x becomes visible before the write to z.
> > 
> >     The JMM does ensure that the write to x becomes visible 
> together with
> >     the write to v, and that was the original poster's (Talip Ozturk)
> >     question.
> > 
> >     What happens to z is another question: The JMM only 
> guarantees that it
> >     will not become visible before the write to x or v (since it
> >     happens-after the x and v writes).
> > 
> > 
> > Does it? Why is it prevented from re-ordering the write to z up before
> > the write to v, and indeed even before the write to x?
> 
> Because the three writes happen in the same thread, which establishes
> a happens-before relation between them in the order of their appearance
> in the source code ("program order").

Not quite. Christian is correct. The thread that does the writes must not be able to detect them out of order but other threads can. The volatile write has release semantics which allows other accesses to be moved prior to the volatile write. ("roach motel" semantics)

David Holmes
------------
 
> Source of reference: "The Java Memory Model" by Pugh/Manson/Adve
> POPL’05, January 12–14, 2005, Long Beach, California, USA.
> http://www.google.de/url?sa=t&rct=j&q=java%20memory%20model&source
=web&cd=4&ved=0CEgQFjAD&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.78.1977%26rep%3Drep1%26type%3Dpdf&ei=cW07T_6OFM7jtQbLqNHRBg&usg=AFQjCNEJWmr7bPSaZVK6Hy_0XtVxWm3A7g&cad=rja
as it says the following:
"Happens-before is the transitive closure of program order
and the synchronizes-with order", i.e. happens-before includes
program order.

Regards,
Holger.

-- 
Prof. Dr. Holger Peine
Hochschule Hannover, Fakultät IV, Abt. Informatik
Tel: +49(511)9296-1830  Fax: -1810 (shared, please state my name)
Ricklinger Stadtweg 120, D-30459 Hannover, Germany
_______________________________________________
Concurrency-interest mailing list
Concurrency-interest at cs.oswego.edu
http://cs.oswego.edu/mailman/listinfo/concurrency-interest




More information about the Concurrency-interest mailing list