215
216 public:
217 VM_CollectForMetadataAllocation(ClassLoaderData* loader_data,
218 size_t size,
219 Metaspace::MetadataType mdtype,
220 uint gc_count_before,
221 uint full_gc_count_before,
222 GCCause::Cause gc_cause);
223
224 virtual VMOp_Type type() const { return VMOp_CollectForMetadataAllocation; }
225 virtual void doit();
226 MetaWord* result() const { return _result; }
227
228 bool initiate_concurrent_GC();
229 };
230
231 class SvcGCMarker : public StackObj {
232 private:
233 JvmtiGCMarker _jgcm;
234 public:
235 typedef enum { MINOR, FULL, OTHER } reason_type;
236
237 SvcGCMarker(reason_type reason ) {
238 VM_GC_Operation::notify_gc_begin(reason == FULL);
239 }
240
241 ~SvcGCMarker() {
242 VM_GC_Operation::notify_gc_end();
243 }
244 };
245
246 #endif // SHARE_VM_GC_SHARED_VMGCOPERATIONS_HPP
|
215
216 public:
217 VM_CollectForMetadataAllocation(ClassLoaderData* loader_data,
218 size_t size,
219 Metaspace::MetadataType mdtype,
220 uint gc_count_before,
221 uint full_gc_count_before,
222 GCCause::Cause gc_cause);
223
224 virtual VMOp_Type type() const { return VMOp_CollectForMetadataAllocation; }
225 virtual void doit();
226 MetaWord* result() const { return _result; }
227
228 bool initiate_concurrent_GC();
229 };
230
231 class SvcGCMarker : public StackObj {
232 private:
233 JvmtiGCMarker _jgcm;
234 public:
235 typedef enum { MINOR, FULL, CONCURRENT, OTHER } reason_type;
236
237 SvcGCMarker(reason_type reason ) {
238 VM_GC_Operation::notify_gc_begin(reason == FULL);
239 }
240
241 ~SvcGCMarker() {
242 VM_GC_Operation::notify_gc_end();
243 }
244 };
245
246 #endif // SHARE_VM_GC_SHARED_VMGCOPERATIONS_HPP
|