<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi David,<br>
    <br>
    If you don't have any other questions/comments, can I proceed to
    push?<br>
    <br>
    Kim, thank you very much for the all explanations.<br>
    <br>
    Thanks,<br>
    Sangheon<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 02/07/2017 11:00 PM, Kim Barrett
      wrote:<br>
    </div>
    <blockquote
      cite="mid:FC266AAB-335E-4784-80DD-7A803E3B3E6D@oracle.com"
      type="cite">
      <blockquote type="cite">
        <pre wrap="">On Feb 6, 2017, at 10:44 PM, David Holmes <a class="moz-txt-link-rfc2396E" href="mailto:david.holmes@oracle.com"><david.holmes@oracle.com></a> wrote:
</pre>
        <blockquote type="cite">
          <blockquote type="cite">
            <pre wrap="">Does the SATB occur at a global safepoint?
</pre>
          </blockquote>
          <pre wrap="">SATB is the approach G1 uses for a part of concurrent collection.  It
defines the invariants that must be maintained by the mutator so that
the collector can find all the live objects.  The barriers in question
are executed by the mutator concurrently with the collector, in order
to inform the collector of reachability graph modifications.
</pre>
        </blockquote>
        <pre wrap="">Is that a "no"? :) I don't understand how the barriers operate in relation to concurrent actions by the GC. To take the current case, what prevents the GC from deciding that the referent is garbage and can deleted, before the enqueue is called? I assumed a safepoint had to be involved somewhere so that the sequence of actions: extract, enqueue, store, was atomic with respect to the GC.
</pre>
      </blockquote>
      <pre wrap="">To be more precise, the barriers in question are executed by the
mutator concurrently with the marking phase of the collector.  Once
marking is (mostly) complete, G1 safepoints and performs various
tasks, including reference processing.  The barrier must be atomic
wrto that safepoint (which is accomplished by not allowing any
safepoints during the barrier execution).  So yes, the sequence of
extract and enqueue are atomic wrto the relevant part of the GC.


</pre>
    </blockquote>
    <br>
  </body>
</html>