440 virtual void update_gc_stats(int current_level, bool full) {}
441
442 // Mark sweep support phase2
443 virtual void prepare_for_compaction(CompactPoint* cp);
444 // Mark sweep support phase3
445 virtual void pre_adjust_pointers() {ShouldNotReachHere();}
446 virtual void adjust_pointers();
447 // Mark sweep support phase4
448 virtual void compact();
449 virtual void post_compact() {ShouldNotReachHere();}
450
451 // Support for CMS's rescan. In this general form we return a pointer
452 // to an abstract object that can be used, based on specific previously
453 // decided protocols, to exchange information between generations,
454 // information that may be useful for speeding up certain types of
455 // garbage collectors. A NULL value indicates to the client that
456 // no data recording is expected by the provider. The data-recorder is
457 // expected to be GC worker thread-local, with the worker index
458 // indicated by "thr_num".
459 virtual void* get_data_recorder(int thr_num) { return NULL; }
460
461 // Some generations may require some cleanup actions before allowing
462 // a verification.
463 virtual void prepare_for_verify() {};
464
465 // Accessing "marks".
466
467 // This function gives a generation a chance to note a point between
468 // collections. For example, a contiguous generation might note the
469 // beginning allocation point post-collection, which might allow some later
470 // operations to be optimized.
471 virtual void save_marks() {}
472
473 // This function allows generations to initialize any "saved marks". That
474 // is, should only be called when the generation is empty.
475 virtual void reset_saved_marks() {}
476
477 // This function is "true" iff any no allocations have occurred in the
478 // generation since the last call to "save_marks".
479 virtual bool no_allocs_since_save_marks() = 0;
|
440 virtual void update_gc_stats(int current_level, bool full) {}
441
442 // Mark sweep support phase2
443 virtual void prepare_for_compaction(CompactPoint* cp);
444 // Mark sweep support phase3
445 virtual void pre_adjust_pointers() {ShouldNotReachHere();}
446 virtual void adjust_pointers();
447 // Mark sweep support phase4
448 virtual void compact();
449 virtual void post_compact() {ShouldNotReachHere();}
450
451 // Support for CMS's rescan. In this general form we return a pointer
452 // to an abstract object that can be used, based on specific previously
453 // decided protocols, to exchange information between generations,
454 // information that may be useful for speeding up certain types of
455 // garbage collectors. A NULL value indicates to the client that
456 // no data recording is expected by the provider. The data-recorder is
457 // expected to be GC worker thread-local, with the worker index
458 // indicated by "thr_num".
459 virtual void* get_data_recorder(int thr_num) { return NULL; }
460 virtual void sample_eden_chunk() {}
461
462 // Some generations may require some cleanup actions before allowing
463 // a verification.
464 virtual void prepare_for_verify() {};
465
466 // Accessing "marks".
467
468 // This function gives a generation a chance to note a point between
469 // collections. For example, a contiguous generation might note the
470 // beginning allocation point post-collection, which might allow some later
471 // operations to be optimized.
472 virtual void save_marks() {}
473
474 // This function allows generations to initialize any "saved marks". That
475 // is, should only be called when the generation is empty.
476 virtual void reset_saved_marks() {}
477
478 // This function is "true" iff any no allocations have occurred in the
479 // generation since the last call to "save_marks".
480 virtual bool no_allocs_since_save_marks() = 0;
|