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