<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Segmentation fault in _cairo_traps_compositor_glyphs"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=103037#c7">Comment # 7</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Segmentation fault in _cairo_traps_compositor_glyphs"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=103037">bug 103037</a>
              from <span class="vcard"><a class="email" href="mailto:fludkov.me@gmail.com" title="Mikhail Fludkov <fludkov.me@gmail.com>"> <span class="fn">Mikhail Fludkov</span></a>
</span></b>
        <pre>(In reply to Uli Schlachter from <a href="show_bug.cgi?id=103037#c6">comment #6</a>)
<span class="quote">> Also, doesn't the if(likely(once->completed)) at the beginning of the
> function need an _cairo_atomic_int_get() around it?</span >
My colleague and me discussed it for quite a while, as it was not obvious at
the first glance. The conclusion was that it should be ok. If for whatever
reason it is not True after we read it, all the following reads/writes to it
are atomic, so we should be fine. Another benefit of this implementation
compared to the proposed earlier spinlock is that after initialization is
finished we don't use slower atomic loads. So performance wise it is exactly
the same as the code that used to be there before. 

<span class="quote">> Would be fine by me, but does this really need a struct with two ints? Just
> have 0=UNINITIALIZED, 1=INITIALIZING, and 2=INITIALIZED and one int is
> enough. (Yes, this makes the implementation a bit more complicated).</span >
I agree I will change the patch.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>