< prev index next >

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

Print this page




 922   CLDCallback(bool class_unload) : _class_unload(class_unload) {}
 923   void do_cld(ClassLoaderData* cld) {
 924      assert(cld != NULL, "invariant");
 925     if (cld->is_unsafe_anonymous()) {
 926       return;
 927     }
 928     if (_class_unload) {
 929       JfrTypeSet::do_unloaded_class_loader_data(cld);
 930       return;
 931     }
 932     JfrTypeSet::do_class_loader_data(cld);
 933   }
 934 };
 935 
 936 void JfrTypeSet::do_class_loaders() {
 937   CLDCallback cld_cb(_class_unload);
 938   if (_class_unload) {
 939     ClassLoaderDataGraph::cld_unloading_do(&cld_cb);
 940     return;
 941   }
 942   ClassLoaderDataGraph::cld_do(&cld_cb);
 943 }
 944 
 945 static void clear_artifacts(JfrArtifactSet* artifacts,
 946                             bool class_unload) {
 947   assert(artifacts != NULL, "invariant");
 948   assert(artifacts->has_klass_entries(), "invariant");
 949 
 950   // untag
 951   ClearKlassAndMethods clear(class_unload);
 952   artifacts->iterate_klasses(clear);
 953   artifacts->clear();
 954 }
 955 
 956 /**
 957  * Write all "tagged" (in-use) constant artifacts and their dependencies.
 958  */
 959 void JfrTypeSet::serialize(JfrCheckpointWriter* writer, JfrCheckpointWriter* leakp_writer, bool class_unload) {
 960   assert(writer != NULL, "invariant");
 961   ResourceMark rm;
 962   // initialization begin




 922   CLDCallback(bool class_unload) : _class_unload(class_unload) {}
 923   void do_cld(ClassLoaderData* cld) {
 924      assert(cld != NULL, "invariant");
 925     if (cld->is_unsafe_anonymous()) {
 926       return;
 927     }
 928     if (_class_unload) {
 929       JfrTypeSet::do_unloaded_class_loader_data(cld);
 930       return;
 931     }
 932     JfrTypeSet::do_class_loader_data(cld);
 933   }
 934 };
 935 
 936 void JfrTypeSet::do_class_loaders() {
 937   CLDCallback cld_cb(_class_unload);
 938   if (_class_unload) {
 939     ClassLoaderDataGraph::cld_unloading_do(&cld_cb);
 940     return;
 941   }
 942   ClassLoaderDataGraph::loaded_cld_do(&cld_cb);
 943 }
 944 
 945 static void clear_artifacts(JfrArtifactSet* artifacts,
 946                             bool class_unload) {
 947   assert(artifacts != NULL, "invariant");
 948   assert(artifacts->has_klass_entries(), "invariant");
 949 
 950   // untag
 951   ClearKlassAndMethods clear(class_unload);
 952   artifacts->iterate_klasses(clear);
 953   artifacts->clear();
 954 }
 955 
 956 /**
 957  * Write all "tagged" (in-use) constant artifacts and their dependencies.
 958  */
 959 void JfrTypeSet::serialize(JfrCheckpointWriter* writer, JfrCheckpointWriter* leakp_writer, bool class_unload) {
 960   assert(writer != NULL, "invariant");
 961   ResourceMark rm;
 962   // initialization begin


< prev index next >