178 JfrSerializerRegistration* const registration = new JfrSerializerRegistration(id, permit_cache, cs);
179 if (registration == NULL) {
180 delete cs;
181 return false;
182 }
183 if (require_safepoint) {
184 assert(!_safepoint_types.in_list(registration), "invariant");
185 DEBUG_ONLY(assert_not_registered_twice(id, _safepoint_types);)
186 _safepoint_types.prepend(registration);
187 }
188 else {
189 assert(!_types.in_list(registration), "invariant");
190 DEBUG_ONLY(assert_not_registered_twice(id, _types);)
191 _types.prepend(registration);
192 }
193 return true;
194 }
195
196 bool JfrTypeManager::initialize() {
197 // register non-safepointing type serialization
198 for (size_t i = 0; i < 16; ++i) {
199 switch (i) {
200 case 0: register_serializer(TYPE_FLAGVALUEORIGIN, false, true, new FlagValueOriginConstant()); break;
201 case 1: register_serializer(TYPE_INFLATECAUSE, false, true, new MonitorInflateCauseConstant()); break;
202 case 2: register_serializer(TYPE_GCCAUSE, false, true, new GCCauseConstant()); break;
203 case 3: register_serializer(TYPE_GCNAME, false, true, new GCNameConstant()); break;
204 case 4: register_serializer(TYPE_GCWHEN, false, true, new GCWhenConstant()); break;
205 case 5: register_serializer(TYPE_G1HEAPREGIONTYPE, false, true, new G1HeapRegionTypeConstant()); break;
206 case 6: register_serializer(TYPE_GCTHRESHOLDUPDATER, false, true, new GCThresholdUpdaterConstant()); break;
207 case 7: register_serializer(TYPE_METADATATYPE, false, true, new MetadataTypeConstant()); break;
208 case 8: register_serializer(TYPE_METASPACEOBJECTTYPE, false, true, new MetaspaceObjectTypeConstant()); break;
209 case 9: register_serializer(TYPE_G1YCTYPE, false, true, new G1YCTypeConstant()); break;
210 case 10: register_serializer(TYPE_REFERENCETYPE, false, true, new ReferenceTypeConstant()); break;
211 case 11: register_serializer(TYPE_NARROWOOPMODE, false, true, new NarrowOopModeConstant()); break;
212 case 12: register_serializer(TYPE_COMPILERPHASETYPE, false, true, new CompilerPhaseTypeConstant()); break;
213 case 13: register_serializer(TYPE_CODEBLOBTYPE, false, true, new CodeBlobTypeConstant()); break;
214 case 14: register_serializer(TYPE_VMOPERATIONTYPE, false, true, new VMOperationTypeConstant()); break;
215 case 15: register_serializer(TYPE_THREADSTATE, false, true, new ThreadStateConstant()); break;
216 default:
217 guarantee(false, "invariant");
218 }
219 }
220
221 // register safepointing type serialization
222 for (size_t i = 0; i < 2; ++i) {
223 switch (i) {
224 case 0: register_serializer(TYPE_THREADGROUP, true, false, new JfrThreadGroupConstant()); break;
225 case 1: register_serializer(TYPE_THREAD, true, false, new JfrThreadConstantSet()); break;
226 default:
227 guarantee(false, "invariant");
228 }
229 }
230 return true;
231 }
232
233
|
178 JfrSerializerRegistration* const registration = new JfrSerializerRegistration(id, permit_cache, cs);
179 if (registration == NULL) {
180 delete cs;
181 return false;
182 }
183 if (require_safepoint) {
184 assert(!_safepoint_types.in_list(registration), "invariant");
185 DEBUG_ONLY(assert_not_registered_twice(id, _safepoint_types);)
186 _safepoint_types.prepend(registration);
187 }
188 else {
189 assert(!_types.in_list(registration), "invariant");
190 DEBUG_ONLY(assert_not_registered_twice(id, _types);)
191 _types.prepend(registration);
192 }
193 return true;
194 }
195
196 bool JfrTypeManager::initialize() {
197 // register non-safepointing type serialization
198 for (size_t i = 0; i < 18; ++i) {
199 switch (i) {
200 case 0: register_serializer(TYPE_FLAGVALUEORIGIN, false, true, new FlagValueOriginConstant()); break;
201 case 1: register_serializer(TYPE_INFLATECAUSE, false, true, new MonitorInflateCauseConstant()); break;
202 case 2: register_serializer(TYPE_GCCAUSE, false, true, new GCCauseConstant()); break;
203 case 3: register_serializer(TYPE_GCNAME, false, true, new GCNameConstant()); break;
204 case 4: register_serializer(TYPE_GCWHEN, false, true, new GCWhenConstant()); break;
205 case 5: register_serializer(TYPE_G1HEAPREGIONTYPE, false, true, new G1HeapRegionTypeConstant()); break;
206 case 6: register_serializer(TYPE_GCTHRESHOLDUPDATER, false, true, new GCThresholdUpdaterConstant()); break;
207 case 7: register_serializer(TYPE_METADATATYPE, false, true, new MetadataTypeConstant()); break;
208 case 8: register_serializer(TYPE_METASPACEOBJECTTYPE, false, true, new MetaspaceObjectTypeConstant()); break;
209 case 9: register_serializer(TYPE_G1YCTYPE, false, true, new G1YCTypeConstant()); break;
210 case 10: register_serializer(TYPE_REFERENCETYPE, false, true, new ReferenceTypeConstant()); break;
211 case 11: register_serializer(TYPE_NARROWOOPMODE, false, true, new NarrowOopModeConstant()); break;
212 case 12: register_serializer(TYPE_COMPILERPHASETYPE, false, true, new CompilerPhaseTypeConstant()); break;
213 case 13: register_serializer(TYPE_CODEBLOBTYPE, false, true, new CodeBlobTypeConstant()); break;
214 case 14: register_serializer(TYPE_VMOPERATIONTYPE, false, true, new VMOperationTypeConstant()); break;
215 case 15: register_serializer(TYPE_THREADSTATE, false, true, new ThreadStateConstant()); break;
216 case 16: register_serializer(TYPE_ZSTATISTICSCOUNTERTYPE, false, true, new ZStatisticsCounterTypeConstant()); break;
217 case 17: register_serializer(TYPE_ZSTATISTICSSAMPLERTYPE, false, true, new ZStatisticsSamplerTypeConstant()); break;
218 default:
219 guarantee(false, "invariant");
220 }
221 }
222
223 // register safepointing type serialization
224 for (size_t i = 0; i < 2; ++i) {
225 switch (i) {
226 case 0: register_serializer(TYPE_THREADGROUP, true, false, new JfrThreadGroupConstant()); break;
227 case 1: register_serializer(TYPE_THREAD, true, false, new JfrThreadConstantSet()); break;
228 default:
229 guarantee(false, "invariant");
230 }
231 }
232 return true;
233 }
234
235
|