Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #10738

Re: Volatile keyword

Date 2011-12-14 11:00 -0800
From Patricia Shanahan <pats@acm.org>
Newsgroups comp.lang.java.programmer
Subject Re: Volatile keyword
References (1 earlier) <jc5ffc$28s$1@dont-email.me> <ddkce71iqujhrsrslsca33a5nep023c4si@4ax.com> <9kodm9FfqrU1@mid.individual.net> <OsmdndL60tQimXrTnZ2dnUVZ_judnZ2d@posted.palinacquisition> <9ks8r2Fld4U1@mid.individual.net>
Message-ID <GvmdneWPfcr6b3XTnZ2dnUVZ_qqdnZ2d@earthlink.com> (permalink)

Show all headers | View raw


On 12/14/2011 10:39 AM, Robert Klemme wrote:
> On 12/13/2011 08:54 AM, Peter Duniho wrote:
>> On 12/12/11 11:37 PM, Robert Klemme wrote:
>>> [...]Bottom line is that the JVM spec does not make
>>> any guarantees here (ยง17.7 see Lew's reference).
>>
>> I think it's worth being careful about "does not make any guarantees
>> here". The implication of 17.7 is that there _is_ in fact a guarantee,
>> for certain 64-bit fields marked as "volatile". Specifically, those
>> which are of the type "double" or "long". This is true even on 32-bit
>> systems.
>
> And what guarantee is there? Can you unambiguously formulate that and
> provide reference to the JLS so everybody can check it?

As indicated in the quoted material, the relevant section is
"17.7 Non-atomic Treatment of double and long"
http://java.sun.com/docs/books/jls/third_edition/html/memory.html#61803

The key paragraph, for this purpose, says:

"For the purposes of the Java programming language memory model, a
single write to a non-volatile long or double value is treated as two
separate writes: one to each 32-bit half. This can result in a situation
where a thread sees the first 32 bits of a 64 bit value from one write,
and the second 32 bits from another write. Writes and reads of volatile
long and double values are always atomic. Writes to and reads of
references are always atomic, regardless of whether they are implemented
as 32 or 64 bit values."

Patricia

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Volatile keyword "raphfrk@gmail.com" <raphfrk@gmail.com> - 2011-12-12 04:51 -0800
  Re: Volatile keyword Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-12-12 14:31 +0000
    Re: Volatile keyword "raphfrk@gmail.com" <raphfrk@gmail.com> - 2011-12-12 06:52 -0800
  Re: Volatile keyword Lew <lewbloch@gmail.com> - 2011-12-12 06:34 -0800
  Re: Volatile keyword markspace <-@.> - 2011-12-12 10:00 -0800
    Re: Volatile keyword Tom Anderson <twic@urchin.earth.li> - 2011-12-12 18:41 +0000
      Re: Volatile keyword Patricia Shanahan <pats@acm.org> - 2011-12-12 11:43 -0800
    Re: Volatile keyword Roedy Green <see_website@mindprod.com.invalid> - 2011-12-12 11:15 -0800
      Re: Volatile keyword Robert Klemme <shortcutter@googlemail.com> - 2011-12-13 08:37 +0100
        Re: Volatile keyword Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-12-12 23:54 -0800
          Re: Volatile keyword Robert Klemme <shortcutter@googlemail.com> - 2011-12-14 19:39 +0100
            Re: Volatile keyword Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2011-12-14 10:59 -0800
            Re: Volatile keyword Patricia Shanahan <pats@acm.org> - 2011-12-14 11:00 -0800
              Re: Volatile keyword Robert Klemme <shortcutter@googlemail.com> - 2011-12-14 22:35 +0100
  Re: Volatile keyword Roedy Green <see_website@mindprod.com.invalid> - 2011-12-12 10:55 -0800

csiph-web