< prev index next >

src/share/vm/runtime/sweeper.hpp

Print this page

        

@@ -52,11 +52,10 @@
 //     cleared. After that, the nmethod can be evicted from the code cache. Each nmethod's
 //     state change happens during separate sweeps. It may take at least 3 sweeps before an
 //     nmethod's space is freed.
 
 class NMethodSweeper : public AllStatic {
-  friend class WhiteBox;
  private:
   enum MethodStateChange {
     None,
     MadeZombie,
     MarkedForReclamation,

@@ -69,10 +68,11 @@
   static NMethodIterator _current;                // Current nmethod
   static int       _seen;                         // Nof. nmethod we have currently processed in current pass of CodeCache
 
   static volatile int  _sweep_started;            // Flag to control conc sweeper
   static volatile bool _should_sweep;             // Indicates if we should invoke the sweeper
+  static volatile bool _force_sweep;              // Indicates if we should force a sweep
   static volatile int _bytes_changed;             // Counts the total nmethod size if the nmethod changed from:
                                                   //   1) alive       -> not_entrant
                                                   //   2) not_entrant -> zombie
                                                   //   3) zombie      -> marked_for_reclamation
   // Stat counters

@@ -115,10 +115,11 @@
 #endif
 
   static void mark_active_nmethods();      // Invoked at the end of each safepoint
   static void sweeper_loop();
   static void notify(int code_blob_type);  // Possibly start the sweeper thread.
+  static void force_sweep();
 
   static int hotness_counter_reset_val();
   static void report_state_change(nmethod* nm);
   static void possibly_enable_sweeper();
   static void possibly_flush(nmethod* nm);
< prev index next >