RFR 8055008: Clean up code that saves the previous versions of redefined classes
Coleen Phillimore
coleen.phillimore at oracle.com
Tue Sep 2 12:29:20 UTC 2014
Serguei, I didn't answer one of your questions.
On 8/28/14, 5:43 PM, serguei.spitsyn at oracle.com wrote:
>> This bit is set during purging previous versions when all methods
>> have been marked on_stack() if found in various places. The bit is
>> only used for setting breakpoints.
>
> I had to ask slightly different.
> "How precise must be the control of this bit?"
> Part of this question is the question below about what happens when
> the method invocation is finished.
> I realized now that it can impact only setting breakpoints.
> Suppose, we did not clear the bit in time and then another breakpoint
> is set.
> The only bad thing is that this new breakpoint will be useless.
Yes. We set the on_stack bit which causes setting the is_running_emcp
bit during safepoints for class redefinition and class unloading. After
the safepoint, the on_stack bit is cleared. After the safepoint, we
may also set breakpoints using the is_running_emcp bit. If the method
has exited we would set a breakpoint in a method that is never reached.
But this shouldn't be noticeable to the programmer.
The method's is_running_emcp bit and maybe metadata would be cleaned up
the next time we do class unloading at a safepoint.
>
> But let me look at new webrev first to see if any update is needed here.
>
Yes, please review this again and let me know if this does what I claim
it does.
Thank you!
Coleen
More information about the hotspot-dev
mailing list