< prev index next >

src/hotspot/share/prims/jvmtiExport.cpp

Print this page




 287     return _jloader;
 288   }
 289   jobject protection_domain() {
 290     return _protection_domain;
 291   }
 292   jclass class_being_redefined() {
 293     return _class_being_redefined;
 294   }
 295 };
 296 
 297 //////////////////////////////////////////////////////////////////////////////
 298 
 299 int               JvmtiExport::_field_access_count                        = 0;
 300 int               JvmtiExport::_field_modification_count                  = 0;
 301 
 302 bool              JvmtiExport::_can_access_local_variables                = false;
 303 bool              JvmtiExport::_can_hotswap_or_post_breakpoint            = false;
 304 bool              JvmtiExport::_can_modify_any_class                      = false;
 305 bool              JvmtiExport::_can_walk_any_space                        = false;
 306 
 307 bool              JvmtiExport::_has_redefined_a_class                     = false;
 308 bool              JvmtiExport::_all_dependencies_are_recorded             = false;
 309 
 310 //
 311 // field access management
 312 //
 313 
 314 // interpreter generator needs the address of the counter
 315 address JvmtiExport::get_field_access_count_addr() {
 316   // We don't grab a lock because we don't want to
 317   // serialize field access between all threads. This means that a
 318   // thread on another processor can see the wrong count value and
 319   // may either miss making a needed call into post_field_access()
 320   // or will make an unneeded call into post_field_access(). We pay
 321   // this price to avoid slowing down the VM when we aren't watching
 322   // field accesses.
 323   // Other access/mutation safe by virtue of being in VM state.
 324   return (address)(&_field_access_count);
 325 }
 326 
 327 //




 287     return _jloader;
 288   }
 289   jobject protection_domain() {
 290     return _protection_domain;
 291   }
 292   jclass class_being_redefined() {
 293     return _class_being_redefined;
 294   }
 295 };
 296 
 297 //////////////////////////////////////////////////////////////////////////////
 298 
 299 int               JvmtiExport::_field_access_count                        = 0;
 300 int               JvmtiExport::_field_modification_count                  = 0;
 301 
 302 bool              JvmtiExport::_can_access_local_variables                = false;
 303 bool              JvmtiExport::_can_hotswap_or_post_breakpoint            = false;
 304 bool              JvmtiExport::_can_modify_any_class                      = false;
 305 bool              JvmtiExport::_can_walk_any_space                        = false;
 306 
 307 int               JvmtiExport::_redefinition_count                        = 0;
 308 bool              JvmtiExport::_all_dependencies_are_recorded             = false;
 309 
 310 //
 311 // field access management
 312 //
 313 
 314 // interpreter generator needs the address of the counter
 315 address JvmtiExport::get_field_access_count_addr() {
 316   // We don't grab a lock because we don't want to
 317   // serialize field access between all threads. This means that a
 318   // thread on another processor can see the wrong count value and
 319   // may either miss making a needed call into post_field_access()
 320   // or will make an unneeded call into post_field_access(). We pay
 321   // this price to avoid slowing down the VM when we aren't watching
 322   // field accesses.
 323   // Other access/mutation safe by virtue of being in VM state.
 324   return (address)(&_field_access_count);
 325 }
 326 
 327 //


< prev index next >