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


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

Re: reading the JLS (17.4.5)

Date 2011-12-21 10:56 -0800
From Patricia Shanahan <pats@acm.org>
Newsgroups comp.lang.java.programmer
Subject Re: reading the JLS (17.4.5)
References (1 earlier) <jckv1o$v1v$1@dont-email.me> <slrnjf1iug.fvg.avl@gamma.logic.tuwien.ac.at> <jcqlef$5rp$1@dont-email.me> <B5-dnV9Gn_2ncW3TnZ2dnUVZ_h6dnZ2d@earthlink.com> <slrnjf37mr.fvg.avl@gamma.logic.tuwien.ac.at>
Message-ID <BP-dnedoectFtm_TnZ2dnUVZ_i2dnZ2d@earthlink.com> (permalink)

Show all headers | View raw


On 12/21/2011 12:54 AM, Andreas Leitgeb wrote:
> Patricia Shanahan<pats@acm.org>  wrote:
>> I think "happens-before" should be thought of as short for "must appear
>> to happen before". As the JLS says "It should be noted that the presence
>> of a happens-before relationship between two actions does not
>> necessarily imply that they have to take place in that order in an
>> implementation.
>
> The JLS even explicitly spells out, that to an unrelated thread these
> synchronized-with actions may even appear out of order. This is, what
> confuses me:
>
> T1: hb(A,B)  - not necessarily observed so by T2
> T1,T2:  hb(B,C)
>
> How would T2 "know" about hb(A,C), if it doesn't know hb(A,B) ?
>

T2 does not necessarily "know", but must see the appropriate results
e.g. from its reads. Making that happen is the Java implementation's
problem. How it happens varies depending on the system.

In a small, simple system, with a sequentially consistent hardware
memory model, it may be as simple as writing out any values that are
being held in registers to the appropriate memory locations.

In other situations, it may be necessary to use special instructions,
such as the SPARC membar, to ensure that prior memory operations are
globally visible.

Patricia

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


Thread

reading the JLS (17.4.5) Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-12-18 12:10 +0000
  Re: reading the JLS (17.4.5) markspace <-@.> - 2011-12-18 06:57 -0800
    Re: reading the JLS (17.4.5) Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-12-20 17:54 +0000
      Re: reading the JLS (17.4.5) markspace <-@.> - 2011-12-20 10:50 -0800
        Re: reading the JLS (17.4.5) Patricia Shanahan <pats@acm.org> - 2011-12-20 12:12 -0800
          Re: reading the JLS (17.4.5) Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-12-21 08:54 +0000
            Re: reading the JLS (17.4.5) Patricia Shanahan <pats@acm.org> - 2011-12-21 10:56 -0800
              Re: reading the JLS (17.4.5) markspace <-@.> - 2011-12-21 12:02 -0800
  Re: reading the JLS (17.4.5) Patricia Shanahan <pats@acm.org> - 2011-12-18 09:21 -0800
    Re: reading the JLS (17.4.5) Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-12-20 18:35 +0000
      Re: reading the JLS (17.4.5) Lew <lewbloch@gmail.com> - 2011-12-20 19:08 -0800
        Re: reading the JLS (17.4.5) Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-12-21 08:37 +0000
          Re: reading the JLS (17.4.5) Patricia Shanahan <pats@acm.org> - 2011-12-21 10:46 -0800
          Re: reading the JLS (17.4.5) markspace <-@.> - 2011-12-21 12:09 -0800

csiph-web