comparison src/share/vm/oops/method.cpp @ 10206:0cfa93c2fcc4

8012547: Code cache flushing can get stuck reclaming of memory Summary: Keep sweeping regardless of if we are flushing Reviewed-by: kvn, twisti
author neliasso
date Mon, 29 Apr 2013 13:20:19 +0200
parents aeaca88565e6
children 92ef81e2f571 f0bc60565ba8
comparison
equal deleted inserted replaced
10205:62b683108582 10206:0cfa93c2fcc4
875 // This function must not hit a safepoint! 875 // This function must not hit a safepoint!
876 address Method::verified_code_entry() { 876 address Method::verified_code_entry() {
877 debug_only(No_Safepoint_Verifier nsv;) 877 debug_only(No_Safepoint_Verifier nsv;)
878 nmethod *code = (nmethod *)OrderAccess::load_ptr_acquire(&_code); 878 nmethod *code = (nmethod *)OrderAccess::load_ptr_acquire(&_code);
879 if (code == NULL && UseCodeCacheFlushing) { 879 if (code == NULL && UseCodeCacheFlushing) {
880 nmethod *saved_code = CodeCache::find_and_remove_saved_code(this); 880 nmethod *saved_code = CodeCache::reanimate_saved_code(this);
881 if (saved_code != NULL) { 881 if (saved_code != NULL) {
882 methodHandle method(this); 882 methodHandle method(this);
883 assert( ! saved_code->is_osr_method(), "should not get here for osr" ); 883 assert( ! saved_code->is_osr_method(), "should not get here for osr" );
884 set_code( method, saved_code ); 884 set_code( method, saved_code );
885 } 885 }