<br><br><div class="gmail_quote">On Sun, Dec 18, 2011 at 13:02, Roland Kuhn <span dir="ltr"><<a href="mailto:rk@rkuhn.info">rk@rkuhn.info</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><div><div><div>Yes, I would very much welcome a simple way achieving a fence, as you might imagine ;-)</div></div></div></div></blockquote><div><br></div><div>Many of us here would like to see a way to safely publish an object.</div>
<div><br></div><div>---</div><div><br></div><div>Here's a solution no one has mentioned, but ought to be bullet-proof:</div><div><br></div><div><div>public class MutableSafePublication {</div><div>    private int i;</div>
<div>    private Object x;</div><div>    private final MutableSafePublication safePublicationThis;</div><div>    private int i() { return safePublicationThis.i; }</div><div>    private Object x() { return safePublicationThis.x; }</div>
<div>    public MutableSafePublication() {</div><div>        i = 42;</div><div>        x = new Object();</div><div>        safePublicationThis = this;</div><div>    }</div><div>    // use i() and x() consistently in the implementation</div>
<div>}</div></div><div><br></div></div>