< prev index next >

src/share/vm/gc/g1/satbMarkQueue.cpp

Print this page




 204 }
 205 #endif // PRODUCT
 206 
 207 SATBMarkQueueSet::SATBMarkQueueSet() :
 208   PtrQueueSet(),
 209   _shared_satb_queue(this, true /* permanent */) { }
 210 
 211 void SATBMarkQueueSet::initialize(Monitor* cbl_mon, Mutex* fl_lock,
 212                                   int process_completed_threshold,
 213                                   Mutex* lock) {
 214   PtrQueueSet::initialize(cbl_mon, fl_lock, process_completed_threshold, -1);
 215   _shared_satb_queue.set_lock(lock);
 216 }
 217 
 218 void SATBMarkQueueSet::handle_zero_index_for_thread(JavaThread* t) {
 219   t->satb_mark_queue().handle_zero_index();
 220 }
 221 
 222 #ifdef ASSERT
 223 void SATBMarkQueueSet::dump_active_states(bool expected_active) {
 224   log_info(gc, verify)("Expected SATB active state: %s", expected_active ? "ACTIVE" : "INACTIVE");
 225   log_info(gc, verify)("Actual SATB active states:");
 226   log_info(gc, verify)("  Queue set: %s", is_active() ? "ACTIVE" : "INACTIVE");
 227   for (JavaThread* t = Threads::first(); t; t = t->next()) {
 228     log_info(gc, verify)("  Thread \"%s\" queue: %s", t->name(), t->satb_mark_queue().is_active() ? "ACTIVE" : "INACTIVE");
 229   }
 230   log_info(gc, verify)("  Shared queue: %s", shared_satb_queue()->is_active() ? "ACTIVE" : "INACTIVE");
 231 }
 232 
 233 void SATBMarkQueueSet::verify_active_states(bool expected_active) {
 234   // Verify queue set state
 235   if (is_active() != expected_active) {
 236     dump_active_states(expected_active);
 237     guarantee(false, "SATB queue set has an unexpected active state");
 238   }
 239 
 240   // Verify thread queue states
 241   for (JavaThread* t = Threads::first(); t; t = t->next()) {
 242     if (t->satb_mark_queue().is_active() != expected_active) {
 243       dump_active_states(expected_active);
 244       guarantee(false, "Thread SATB queue has an unexpected active state");
 245     }
 246   }
 247 
 248   // Verify shared queue state
 249   if (shared_satb_queue()->is_active() != expected_active) {
 250     dump_active_states(expected_active);




 204 }
 205 #endif // PRODUCT
 206 
 207 SATBMarkQueueSet::SATBMarkQueueSet() :
 208   PtrQueueSet(),
 209   _shared_satb_queue(this, true /* permanent */) { }
 210 
 211 void SATBMarkQueueSet::initialize(Monitor* cbl_mon, Mutex* fl_lock,
 212                                   int process_completed_threshold,
 213                                   Mutex* lock) {
 214   PtrQueueSet::initialize(cbl_mon, fl_lock, process_completed_threshold, -1);
 215   _shared_satb_queue.set_lock(lock);
 216 }
 217 
 218 void SATBMarkQueueSet::handle_zero_index_for_thread(JavaThread* t) {
 219   t->satb_mark_queue().handle_zero_index();
 220 }
 221 
 222 #ifdef ASSERT
 223 void SATBMarkQueueSet::dump_active_states(bool expected_active) {
 224   log_error(gc, verify)("Expected SATB active state: %s", expected_active ? "ACTIVE" : "INACTIVE");
 225   log_error(gc, verify)("Actual SATB active states:");
 226   log_error(gc, verify)("  Queue set: %s", is_active() ? "ACTIVE" : "INACTIVE");
 227   for (JavaThread* t = Threads::first(); t; t = t->next()) {
 228     log_error(gc, verify)("  Thread \"%s\" queue: %s", t->name(), t->satb_mark_queue().is_active() ? "ACTIVE" : "INACTIVE");
 229   }
 230   log_error(gc, verify)("  Shared queue: %s", shared_satb_queue()->is_active() ? "ACTIVE" : "INACTIVE");
 231 }
 232 
 233 void SATBMarkQueueSet::verify_active_states(bool expected_active) {
 234   // Verify queue set state
 235   if (is_active() != expected_active) {
 236     dump_active_states(expected_active);
 237     guarantee(false, "SATB queue set has an unexpected active state");
 238   }
 239 
 240   // Verify thread queue states
 241   for (JavaThread* t = Threads::first(); t; t = t->next()) {
 242     if (t->satb_mark_queue().is_active() != expected_active) {
 243       dump_active_states(expected_active);
 244       guarantee(false, "Thread SATB queue has an unexpected active state");
 245     }
 246   }
 247 
 248   // Verify shared queue state
 249   if (shared_satb_queue()->is_active() != expected_active) {
 250     dump_active_states(expected_active);


< prev index next >