< prev index next >

src/hotspot/share/code/nmethod.cpp


*** 1106,1117 **** set_osr_link(NULL); NMethodSweeper::report_state_change(this); // The release is only needed for compile-time ordering, as accesses // into the nmethod after the store is not safe, due to the sweeper ! // being allowed to free it then, in the case of concurrent nmethod ! // unloading. Therefore, there is no need for acquire on the loader side. OrderAccess::release_store(&_state, (signed char)unloaded); } void nmethod::invalidate_osr_method() { assert(_entry_bci != InvocationEntryBci, "wrong kind of nmethod"); --- 1106,1118 ---- set_osr_link(NULL); NMethodSweeper::report_state_change(this); // The release is only needed for compile-time ordering, as accesses // into the nmethod after the store is not safe, due to the sweeper ! // being allowed to free it when the store is observed, during ! // concurrent nmethod unloading. Therefore, there is no need for ! // acquire on the loader side. OrderAccess::release_store(&_state, (signed char)unloaded); } void nmethod::invalidate_osr_method() { assert(_entry_bci != InvocationEntryBci, "wrong kind of nmethod"); ***************
*** 1844,1854 **** DepTable* table = new DepTable(); // Iterate over live nmethods and check dependencies of all nmethods that are not // marked for deoptimization. A particular dependency is only checked once. ! NMethodIterator iter(true /* only_alive */, true /* only_not_unloading */); while(iter.next()) { nmethod* nm = iter.method(); // Only notify for live nmethods if (!nm->is_marked_for_deoptimization()) { for (Dependencies::DepStream deps(nm); deps.next(); ) { --- 1845,1855 ---- DepTable* table = new DepTable(); // Iterate over live nmethods and check dependencies of all nmethods that are not // marked for deoptimization. A particular dependency is only checked once. ! NMethodIterator iter(NMethodIterator::only_alive_and_not_unloading); while(iter.next()) { nmethod* nm = iter.method(); // Only notify for live nmethods if (!nm->is_marked_for_deoptimization()) { for (Dependencies::DepStream deps(nm); deps.next(); ) {
< prev index next >