On Oct 29, 2010, at 4:09 AM, Christian Thalinger wrote:

> On Oct 28, 2010, at 8:40 PM, John Rose wrote:
>> 6984311: JSR 292 needs optional bootstrap method parameters
>> 
>> http://cr.openjdk.java.net/~jrose/6984311/webrev.02/
> 
> src/share/vm/oops/constantPoolOop.cpp:
> 576     // Benign race condition:  f1 may already be filled in while we were 
> trying to lock.
> I guess we don't care here because the exception to be thrown is expected to 
> be the same for different threads, right?

Yes.  I added more comments:

 +    // Benign race condition:  f1 may already be filled in while we were 
trying to lock.
++    // The important thing here is that all threads pick up the same result.
++    // It doesn't matter which racing thread wins, as long as only one
++    // result is used by all threads, and all future queries.
++    // That result may be either a resolved constant or a failure exception.

This matches what is in the javadoc (for the java.dyn package-info):
 * Every use of this constant pool entry must lead to the same outcome.
 * If the resolution of the names in the method handle constant causes an 
exception to occur,
 * this exception must be recorded by the JVM, and re-thrown on every 
subsequent attempt
 * to use this particular constant.

> 1613         Bytes::put_Java_u2((address) (bytes+5), argc);
> 1614         for (int arg_i = 0; arg_i < argc; arg_i++) {
> 1615           int arg = invoke_dynamic_argument_index_at(idx, arg_i);
> 1616           Bytes::put_Java_u2((address) (bytes+5+2*arg_i), arg);
> 1617         }
> Isn't argc here overwritten with the first arg?

Right!  Changed 5 to 7 on line 1616.  Thanks for spotting that.

> src/share/vm/utilities/constantTag.cpp:
> 
> Only the copyright year is changed.

Fixed.

> Otherwise looks good.

Thanks.  I am updating the webrev:
  http://cr.openjdk.java.net/~jrose/6984311/webrev.03/

-- John
_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to