src/share/vm/runtime/thread.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/runtime/thread.cpp Thu May 12 16:30:52 2011
--- new/src/share/vm/runtime/thread.cpp Thu May 12 16:30:52 2011
*** 2940,2955 ****
--- 2940,2965 ----
_log = NULL;
_task = NULL;
_queue = queue;
_counters = counters;
_buffer_blob = NULL;
+ _scanned_nmethod = NULL;
#ifndef PRODUCT
_ideal_graph_printer = NULL;
#endif
}
+ void CompilerThread::oops_do(OopClosure* f, CodeBlobClosure* cf) {
+ JavaThread::oops_do(f, cf);
+ if (_scanned_nmethod != NULL && cf != NULL) {
+ // Safepoints can occur when the sweeper is scanning an nmethod so
+ // process it here to make sure it isn't unloaded in the middle of
+ // a scan.
+ cf->do_code_blob(_scanned_nmethod);
+ }
+ }
// ======= Threads ========
// The Threads class links together all active threads, and provides
// operations over all threads. It is protected by its own Mutex
src/share/vm/runtime/thread.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File