Hmm... can you provide a reference or some kind of example showing that a single threaded read after write is unreliable? I'm thinking if this is true, huge swaths of programs would be deemed unsafe since read after write is quite a common memory pattern... :) No?
<div>-------- Original message --------</div><div>From: Volkan Yazıcı <[email protected]> </div><div>Date:12/30/2014 8:31 AM (GMT-05:00) </div><div>To: [email protected] </div><div>Cc: </div><div>Subject: Re: Pattern.rank </div><div> </div>A related excerpt from the Java Concurrency in Practice: "An object is in a predictable, consistent state only after its constructor returns, ..." In its current form of Pattern: Pattern(...) { ... this.boost = boost; this.rank = rank(); } public long rank() { // access to this.boost } this.boost might not have been completely initialized when rank() tries to access to it. On Tue, Dec 30, 2014 at 2:14 PM, Reza Naghibi < [email protected]> wrote: > Interesting... you cannot access instance variables in the constructor? > > Also, this hasn't been fully implemented. Boost is going to be a DRR > pattern attribute which will allow 1 pattern to be configured to rank > higher than another. > > > > > <div>-------- Original message --------</div><div>From: Volkan YAZICI < > [email protected]> </div><div>Date:12/30/2014 4:41 AM (GMT-05:00) > </div><div>To: [email protected] </div><div>Cc: > </div><div>Subject: Pattern.rank </div><div> > </div>Hi, > > I have an objection and a question about Pattern class in Java client. > > *Objection:* Pattern.rank() instance method gets called in ctor and > accesses to instance variables, which might not have been initialized yet > due to JMM semantics. I propose to fix it as in DMAP-115 > <https://issues.apache.org/jira/browse/DMAP-115>. > > *Question:* Shall we remove boost option on Pattern ctor? It is neither > used, nor available in .NET client. > > Best. >
