8222086: CodeCache::UnloadingScope needs to preserve and restore previous IsUnloadingBehavior
Reviewed-by: eosterlund
This commit is contained in:
parent
8dfa6d1acc
commit
cc871f0459
@ -780,13 +780,14 @@ void CodeCache::increment_unloading_cycle() {
|
||||
CodeCache::UnloadingScope::UnloadingScope(BoolObjectClosure* is_alive)
|
||||
: _is_unloading_behaviour(is_alive)
|
||||
{
|
||||
_saved_behaviour = IsUnloadingBehaviour::current();
|
||||
IsUnloadingBehaviour::set_current(&_is_unloading_behaviour);
|
||||
increment_unloading_cycle();
|
||||
DependencyContext::cleaning_start();
|
||||
}
|
||||
|
||||
CodeCache::UnloadingScope::~UnloadingScope() {
|
||||
IsUnloadingBehaviour::set_current(NULL);
|
||||
IsUnloadingBehaviour::set_current(_saved_behaviour);
|
||||
DependencyContext::cleaning_end();
|
||||
}
|
||||
|
||||
|
@ -170,6 +170,7 @@ class CodeCache : AllStatic {
|
||||
// "unloading_occurred" controls whether metadata should be cleaned because of class unloading.
|
||||
class UnloadingScope: StackObj {
|
||||
ClosureIsUnloadingBehaviour _is_unloading_behaviour;
|
||||
IsUnloadingBehaviour* _saved_behaviour;
|
||||
|
||||
public:
|
||||
UnloadingScope(BoolObjectClosure* is_alive);
|
||||
|
Loading…
x
Reference in New Issue
Block a user