< prev index next >

src/hotspot/share/classfile/classLoaderData.cpp

Print this page
rev 51740 : 8210754: print_location is not reliable enough (printing register info)
Reviewed-by:


1367 
1368     curr = curr->_next;
1369   }
1370 
1371   return array;
1372 }
1373 
1374 #ifndef PRODUCT
1375 bool ClassLoaderDataGraph::contains_loader_data(ClassLoaderData* loader_data) {
1376   assert_locked_or_safepoint(ClassLoaderDataGraph_lock);
1377   for (ClassLoaderData* data = _head; data != NULL; data = data->next()) {
1378     if (loader_data == data) {
1379       return true;
1380     }
1381   }
1382 
1383   return false;
1384 }
1385 #endif // PRODUCT
1386 












1387 // Move class loader data from main list to the unloaded list for unloading
1388 // and deallocation later.
1389 bool ClassLoaderDataGraph::do_unloading(bool do_cleaning) {
1390   assert_locked_or_safepoint(ClassLoaderDataGraph_lock);
1391 
1392   // Indicate whether safepoint cleanup is needed.
1393   _safepoint_cleanup_needed |= do_cleaning;
1394 
1395   ClassLoaderData* data = _head;
1396   ClassLoaderData* prev = NULL;
1397   bool seen_dead_loader = false;
1398   uint loaders_processed = 0;
1399   uint loaders_removed = 0;
1400 
1401   // Save previous _unloading pointer for CMS which may add to unloading list before
1402   // purging and we don't want to rewalk the previously unloaded class loader data.
1403   _saved_unloading = _unloading;
1404 
1405   data = _head;
1406   while (data != NULL) {




1367 
1368     curr = curr->_next;
1369   }
1370 
1371   return array;
1372 }
1373 
1374 #ifndef PRODUCT
1375 bool ClassLoaderDataGraph::contains_loader_data(ClassLoaderData* loader_data) {
1376   assert_locked_or_safepoint(ClassLoaderDataGraph_lock);
1377   for (ClassLoaderData* data = _head; data != NULL; data = data->next()) {
1378     if (loader_data == data) {
1379       return true;
1380     }
1381   }
1382 
1383   return false;
1384 }
1385 #endif // PRODUCT
1386 
1387 bool ClassLoaderDataGraph::is_valid(ClassLoaderData* loader_data) {
1388   if (loader_data == ClassLoaderData::the_null_class_loader_data()) {
1389     return true;
1390   }
1391   for (ClassLoaderData* data = _head; data != NULL; data = data->next()) {
1392     if (loader_data == data) {
1393       return true;
1394     }
1395   }
1396   return false;
1397 }
1398 
1399 // Move class loader data from main list to the unloaded list for unloading
1400 // and deallocation later.
1401 bool ClassLoaderDataGraph::do_unloading(bool do_cleaning) {
1402   assert_locked_or_safepoint(ClassLoaderDataGraph_lock);
1403 
1404   // Indicate whether safepoint cleanup is needed.
1405   _safepoint_cleanup_needed |= do_cleaning;
1406 
1407   ClassLoaderData* data = _head;
1408   ClassLoaderData* prev = NULL;
1409   bool seen_dead_loader = false;
1410   uint loaders_processed = 0;
1411   uint loaders_removed = 0;
1412 
1413   // Save previous _unloading pointer for CMS which may add to unloading list before
1414   // purging and we don't want to rewalk the previously unloaded class loader data.
1415   _saved_unloading = _unloading;
1416 
1417   data = _head;
1418   while (data != NULL) {


< prev index next >