> On 24 Nov 2014, at 16:36, Peter Levart <peter.lev...@gmail.com> wrote:
> 
> On 11/24/2014 04:04 PM, Joel Borggrén-Franck wrote:
>> 
>> Btw, has anyone seen the assert for upper/lower bounds == null fail in the 
>> wild?
>> 
>> private FieldTypeSignature[] getUpperBoundASTs() {
>>     // check that upper bounds were not evaluated yet
>>     assert(upperBounds == null);
>>     return upperBoundASTs;
>> }
>> 
>> shouldn’t it happen once in a while:
>> 
>> public Type[] getUpperBounds() {
>>     // lazily initialize bounds if necessary
>>     if (upperBounds == null) {
>> 
>>      // thread gets preempted here, other thread completes init, upperBounds 
>> are != null
>> 
>>         FieldTypeSignature[] fts = getUpperBoundASTs(); // get AST
>> 
>> 
>> Is the current code only working because most run without esa?
> 
> ...or because races that would trigger this are very rare, since two 
> consecutive "loads" of upperBounds happen one after the other, so the 2nd 
> load and check might even be optimized away.
> 

I was thinking along the lines of warming up in the interpreter + large search 
engine infrastructure scale.

cheers
/Joel

Reply via email to