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