src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp

changeset 2060
2d160770d2e5
parent 1907
c18cbe5936b8
child 2197
6e0aac35bfa9
     1.1 --- a/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp	Sat Jul 31 15:10:59 2010 +0100
     1.2 +++ b/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp	Mon Aug 02 12:51:43 2010 -0700
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -123,7 +123,21 @@
    1.11                                           int stop_at = 0,
    1.12                                           bool during_pause = false);
    1.13  
    1.14 -  bool apply_closure_to_completed_buffer_helper(int worker_i,
    1.15 +  // If there exists some completed buffer, pop it, then apply the
    1.16 +  // specified closure to all its elements, nulling out those elements
    1.17 +  // processed.  If all elements are processed, returns "true".  If no
    1.18 +  // completed buffers exist, returns false.  If a completed buffer exists,
    1.19 +  // but is only partially completed before a "yield" happens, the
    1.20 +  // partially completed buffer (with its processed elements set to NULL)
    1.21 +  // is returned to the completed buffer set, and this call returns false.
    1.22 +  bool apply_closure_to_completed_buffer(CardTableEntryClosure* cl,
    1.23 +                                         int worker_i = 0,
    1.24 +                                         int stop_at = 0,
    1.25 +                                         bool during_pause = false);
    1.26 +
    1.27 +  // Helper routine for the above.
    1.28 +  bool apply_closure_to_completed_buffer_helper(CardTableEntryClosure* cl,
    1.29 +                                                int worker_i,
    1.30                                                  BufferNode* nd);
    1.31  
    1.32    BufferNode* get_completed_buffer(int stop_at);
    1.33 @@ -136,6 +150,9 @@
    1.34      return &_shared_dirty_card_queue;
    1.35    }
    1.36  
    1.37 +  // Deallocate any completed log buffers
    1.38 +  void clear();
    1.39 +
    1.40    // If a full collection is happening, reset partial logs, and ignore
    1.41    // completed ones: the full collection will make them all irrelevant.
    1.42    void abandon_logs();

mercurial