On Thu, 5 Nov 2020 14:59:56 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> I do wonder if it makes sense to handle triple-state `int` here: "not yet 
>> generated", "generated", "in error"? So that we don't try to generate the 
>> accessor over and over again when it is in error?
>
> If we are changing NativeMethodAccessorImpl.invoke then we should probably do 
> NativeConstructorAccessorImpl.newInstance at the same time. Also wondering if 
> we should, while in the area, add "return acc.invoke(obj, args)" after 
> setting the delegate so that it invokes the newly generated accessor.
> 
> Are there resource or other cases that you have observed where generateMethod 
> fails and then succeeds in a subsequent call?
> 
> @cl4es Do you know of any startup tests that might be sensitive to the eager 
> creating of a VarHandle?
> 
> I agree with @shipilev to test before the CAS.

@AlanBateman @shipilev  commit is updated, please help reivew it again

1.  add same change in NativeConstructorAccessorImpl
2.  eager creating of a VarHandle in both NativeConstructorAccessorImpl and 
NativeMethodAccessorImpl will cause error. 
[http://cr.openjdk.java.net/~hshi/8255883/cyclic_clinit_dependency.txt](url).  
Use unsafe API here. 
3.  add test before compareAndSet and remove "succ" variable.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1070

Reply via email to