Hi David,

Thank you for sharing your opinion!
I'm taking of my claim then. :)


On 12/5/16 22:07, David Holmes wrote:
Hi Serguei,

On 6/12/2016 3:57 PM, serguei.spit...@oracle.com wrote:
Hi Dmitry,


I'm repeating my comments from the internal review.

It looks pretty good to me.
Thank you for the work on it!

I'm not a big fun of new jvmtiThreadState functions though:

+ inline void save_exception_state(ExceptionState *state) { *state =
_exception_state; }

This saves _exception_state into *state.

+ inline void restore_exception_state(ExceptionState state) {
_exception_state = state; }

This restores _exception_state from state.

The functions above do not really
encapsulate and save/restore the _exception_state value so that these

I think they do.

Just to explain.
Of course, I see the prefixes save_ and restore_. :)
I was concerned about the direction of saving/restoring.
The consumer of the api is some other class, not the class itself.
In this case, there is no encapsulation of the saved/restored value as
the value is stored away of the object that should manage it.
Then a misapplication is possible: one value is saved - another restored.

The examples I like are:

interpreter/templateInterpreterGenerator.hpp: void restore_native_result(void); interpreter/templateInterpreterGenerator.hpp: void save_native_result(void);

runtime/sharedRuntime.hpp: static void restore_native_result(MacroAssembler *_masm, BasicType ret_type, int frame_slots); runtime/sharedRuntime.hpp: static void save_native_result(MacroAssembler *_masm, BasicType ret_type, int frame_slots);

  services/threadService.hpp:    save_old_state(java_thread);

  opto/superword.hpp:    void store_depth()    {_depth_save = _depth;}
  opto/superword.hpp:    void restore_depth()  {_depth = _depth_save;}


However, it looks minor to me, maybe a matter of taste.
I'm silent now.


Thanks!
Serguei


Cheers,
David
-----


names are kind of misleading. The same functionality can be provided
with a simplified approach:     inline JvmtiThreadState
exception_state() { return_exception_state;  }
   inline void set_exception_state(ExceptionState state){
_exception_state = state; }


I do not want to insist on my approach and will wait for other people
comments on this.
I hope, some compromise can be found here.


On 12/5/16 01:30, Dmitry Samersoff wrote:
Everybody,

Please review.

http://cr.openjdk.java.net/~dsamersoff/JDK-8165496/webrev.07/

Bug link:

https://bugs.openjdk.java.net/browse/JDK-8165496

Two separate flags, exception_detected and exception_caught, replaced
with one that changes it's state.

Assert assert(_exception_caught == false) and fix for JDK-8134434 are
removed.

Testing:
   1. Manual testing of instrumented hotspot
   2. Local ks with stress agent
   3. RBT ks with stress agent

What the 'ks' stands for?
I have some guess but still would like to know this abbreviation.

Thanks,
Serguei

   4. RBT hotspot_all

-Dmitry



Reply via email to