Mercurial > hg > truffle
diff src/share/vm/memory/referenceProcessor.cpp @ 10031:ebb32c4589f3
Force GC to process graal_installed_code references during marking (GRAAL-257)
author | Christos Kotselidis <christos.kotselidis@oracle.com> |
---|---|
date | Tue, 11 Jun 2013 19:59:52 +0200 |
parents | aed758eda82a |
children | 4a7dc38ae96b |
line wrap: on
line diff
--- a/src/share/vm/memory/referenceProcessor.cpp Tue Jun 11 18:13:55 2013 +0200 +++ b/src/share/vm/memory/referenceProcessor.cpp Tue Jun 11 19:59:52 2013 +0200 @@ -32,6 +32,10 @@ #include "oops/oop.inline.hpp" #include "runtime/java.hpp" #include "runtime/jniHandles.hpp" +#ifdef GRAAL +#include "code/codeCache.hpp" +#include "code/nmethod.hpp" +#endif ReferencePolicy* ReferenceProcessor::_always_clear_soft_ref_policy = NULL; ReferencePolicy* ReferenceProcessor::_default_soft_ref_policy = NULL; @@ -243,6 +247,9 @@ task_executor->set_single_threaded_mode(); } process_phaseJNI(is_alive, keep_alive, complete_gc); +#ifdef GRAAL + process_phaseGraalNMethods(keep_alive, complete_gc); +#endif } } @@ -284,6 +291,14 @@ complete_gc->do_void(); } +#ifdef GRAAL +void ReferenceProcessor::process_phaseGraalNMethods(OopClosure* keep_alive, + VoidClosure* complete_gc) { + CodeCache::alive_nmethods_do_graal_methods(keep_alive); + complete_gc->do_void(); +} + +#endif template <class T> bool enqueue_discovered_ref_helper(ReferenceProcessor* ref,