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