< prev index next >

src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeManager.cpp

Print this page
rev 56146 : 8209802: Garbage collectors should register JFR types themselves to avoid build errors.


 209     assert(!safepoint_types.in_list(registration), "invariant");
 210     DEBUG_ONLY(assert_not_registered_twice(id, safepoint_types);)
 211     safepoint_types.prepend(registration);
 212   } else {
 213     assert(!types.in_list(registration), "invariant");
 214     DEBUG_ONLY(assert_not_registered_twice(id, types);)
 215     types.prepend(registration);
 216   }
 217   return true;
 218 }
 219 
 220 bool JfrTypeManager::initialize() {
 221   SerializerRegistrationGuard guard;
 222 
 223   // register non-safepointing type serialization
 224   register_type(TYPE_FLAGVALUEORIGIN, false, true, new FlagValueOriginConstant());
 225   register_type(TYPE_INFLATECAUSE, false, true, new MonitorInflateCauseConstant());
 226   register_type(TYPE_GCCAUSE, false, true, new GCCauseConstant());
 227   register_type(TYPE_GCNAME, false, true, new GCNameConstant());
 228   register_type(TYPE_GCWHEN, false, true, new GCWhenConstant());
 229   register_type(TYPE_G1HEAPREGIONTYPE, false, true, new G1HeapRegionTypeConstant());
 230   register_type(TYPE_GCTHRESHOLDUPDATER, false, true, new GCThresholdUpdaterConstant());
 231   register_type(TYPE_METADATATYPE, false, true, new MetadataTypeConstant());
 232   register_type(TYPE_METASPACEOBJECTTYPE, false, true, new MetaspaceObjectTypeConstant());
 233   register_type(TYPE_G1YCTYPE, false, true, new G1YCTypeConstant());
 234   register_type(TYPE_REFERENCETYPE, false, true, new ReferenceTypeConstant());
 235   register_type(TYPE_NARROWOOPMODE, false, true, new NarrowOopModeConstant());
 236   register_type(TYPE_COMPILERPHASETYPE, false, true, new CompilerPhaseTypeConstant());
 237   register_type(TYPE_CODEBLOBTYPE, false, true, new CodeBlobTypeConstant());
 238   register_type(TYPE_VMOPERATIONTYPE, false, true, new VMOperationTypeConstant());
 239   register_type(TYPE_THREADSTATE, false, true, new ThreadStateConstant());
 240 
 241   // register safepointing type serialization
 242   register_type(TYPE_THREADGROUP, true, false, new JfrThreadGroupConstant());
 243   register_type(TYPE_THREAD, true, false, new JfrThreadConstantSet());
 244   return true;
 245 }
 246 
 247 // implementation for the static registration function exposed in the JfrSerializer api
 248 bool JfrSerializer::register_serializer(JfrTypeId id, bool require_safepoint, bool permit_cache, JfrSerializer* serializer) {
 249   SerializerRegistrationGuard guard;
 250   return register_type(id, require_safepoint, permit_cache, serializer);
 251 }


 209     assert(!safepoint_types.in_list(registration), "invariant");
 210     DEBUG_ONLY(assert_not_registered_twice(id, safepoint_types);)
 211     safepoint_types.prepend(registration);
 212   } else {
 213     assert(!types.in_list(registration), "invariant");
 214     DEBUG_ONLY(assert_not_registered_twice(id, types);)
 215     types.prepend(registration);
 216   }
 217   return true;
 218 }
 219 
 220 bool JfrTypeManager::initialize() {
 221   SerializerRegistrationGuard guard;
 222 
 223   // register non-safepointing type serialization
 224   register_type(TYPE_FLAGVALUEORIGIN, false, true, new FlagValueOriginConstant());
 225   register_type(TYPE_INFLATECAUSE, false, true, new MonitorInflateCauseConstant());
 226   register_type(TYPE_GCCAUSE, false, true, new GCCauseConstant());
 227   register_type(TYPE_GCNAME, false, true, new GCNameConstant());
 228   register_type(TYPE_GCWHEN, false, true, new GCWhenConstant());

 229   register_type(TYPE_GCTHRESHOLDUPDATER, false, true, new GCThresholdUpdaterConstant());
 230   register_type(TYPE_METADATATYPE, false, true, new MetadataTypeConstant());
 231   register_type(TYPE_METASPACEOBJECTTYPE, false, true, new MetaspaceObjectTypeConstant());

 232   register_type(TYPE_REFERENCETYPE, false, true, new ReferenceTypeConstant());
 233   register_type(TYPE_NARROWOOPMODE, false, true, new NarrowOopModeConstant());
 234   register_type(TYPE_COMPILERPHASETYPE, false, true, new CompilerPhaseTypeConstant());
 235   register_type(TYPE_CODEBLOBTYPE, false, true, new CodeBlobTypeConstant());
 236   register_type(TYPE_VMOPERATIONTYPE, false, true, new VMOperationTypeConstant());
 237   register_type(TYPE_THREADSTATE, false, true, new ThreadStateConstant());
 238 
 239   // register safepointing type serialization
 240   register_type(TYPE_THREADGROUP, true, false, new JfrThreadGroupConstant());
 241   register_type(TYPE_THREAD, true, false, new JfrThreadConstantSet());
 242   return true;
 243 }
 244 
 245 // implementation for the static registration function exposed in the JfrSerializer api
 246 bool JfrSerializer::register_serializer(JfrTypeId id, bool require_safepoint, bool permit_cache, JfrSerializer* serializer) {
 247   SerializerRegistrationGuard guard;
 248   return register_type(id, require_safepoint, permit_cache, serializer);
 249 }
< prev index next >