--- a/hotspot/src/share/vm/runtime/thread.hpp Mon Mar 30 17:21:54 2015 +0200
+++ b/hotspot/src/share/vm/runtime/thread.hpp Tue Mar 31 07:54:56 2015 +0200
@@ -551,6 +551,7 @@
Monitor* owned_locks() const { return _owned_locks; }
bool owns_locks() const { return owned_locks() != NULL; }
bool owns_locks_but_compiled_lock() const;
+ int oops_do_parity() const { return _oops_do_parity; }
// Deadlock detection
bool allow_allocation() { return _allow_allocation_count == 0; }
@@ -1855,6 +1856,7 @@
static int _number_of_threads;
static int _number_of_non_daemon_threads;
static int _return_code;
+ static int _thread_claim_parity;
#ifdef ASSERT
static bool _vm_complete;
#endif
@@ -1884,9 +1886,10 @@
// Does not include JNI_VERSION_1_1
static jboolean is_supported_jni_version(jint version);
- // Garbage collection
- static void follow_other_roots(void f(oop*));
+ static int thread_claim_parity() { return _thread_claim_parity; }
+ static void change_thread_claim_parity();
+ static void assert_all_threads_claimed() PRODUCT_RETURN;
// Apply "f->do_oop" to all root oops in all threads.
// This version may only be called by sequential code.
static void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf);