<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [GLIB] Implement garbage collector timers"
   href="https://bugs.webkit.org/show_bug.cgi?id=151391#c10">Comment # 10</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [GLIB] Implement garbage collector timers"
   href="https://bugs.webkit.org/show_bug.cgi?id=151391">bug 151391</a>
              from <span class="vcard"><a class="email" href="mailto:cgarcia&#64;igalia.com" title="Carlos Garcia Campos &lt;cgarcia&#64;igalia.com&gt;"> <span class="fn">Carlos Garcia Campos</span></a>
</span></b>
        <pre>(In reply to <a href="show_bug.cgi?id=151391#c9">comment #9</a>)
<span class="quote">&gt; Comment on <span class=""><a href="attachment.cgi?id=265749&amp;action=diff" name="attach_265749" title="Patch">attachment 265749</a> <a href="attachment.cgi?id=265749&amp;action=edit" title="Patch">[details]</a></span>
&gt; Patch
&gt; 
&gt; View in context:
&gt; <a href="https://bugs.webkit.org/attachment.cgi?id=265749&amp;action=review">https://bugs.webkit.org/attachment.cgi?id=265749&amp;action=review</a>
&gt; 
&gt; &gt;&gt;&gt; Source/JavaScriptCore/heap/EdenGCActivityCallback.cpp:33
&gt; &gt;&gt;&gt; +#if USE(CF) || USE(GLIB)
&gt; &gt;&gt; 
&gt; &gt;&gt; Is USE(GLIB) also true for EFL? I wonder if it wouldn't be better to be more explicit here for the sake of code readability and leave this as:
&gt; &gt;&gt; 
&gt; &gt;&gt; #if USE(CF) || PLATFORM(EFL) || USE(GLIB)
&gt; &gt; 
&gt; &gt; Yes, it's true.
&gt; 
&gt; Why USE(GLIB) then? It's true for both EFL and GTK, but the implementations
&gt; of HeapTimer differ for the two ports.
&gt; 
&gt; Since all these classes are based on HeapTimer, I think the PLATFORM(EFL) ||
&gt; PLATFORM(GTK) should be used throughout this patch, instead of bundling them
&gt; under USE(GLIB).</span >

Because this would work for any other port using glib, like WebKit4Wayland, EFL is the exception here, not glib.

<span class="quote">&gt; &gt; Source/JavaScriptCore/heap/HeapTimer.cpp:41
&gt; &gt;  #if PLATFORM(EFL)
&gt; &gt;  #include &lt;Ecore.h&gt;
&gt; &gt; +#elif USE(GLIB)
&gt; &gt; +#include &lt;glib.h&gt;
&gt; &gt;  #endif
&gt; 
&gt; Just one example, you end up doing this. It's counter-intuitive because
&gt; PLATFORM(EFL) falls under USE(GLIB), but you still have to special-case it
&gt; because of the different implementations.</span >

Yes, because EFL uses GLIB but its own timer implementation. The EFL implementation is specific to EFL, but the GLIB one is not specific to GTK.

<span class="quote">&gt; &gt; Source/JavaScriptCore/heap/HeapTimer.cpp:174
&gt; &gt; +    g_source_attach(m_timer.get(), g_main_context_get_thread_default());
&gt; 
&gt; As it stands these timers only fire on main threads, since worker threads
&gt; aren't run via a main loop.</span >

g_main_context_get_thread_default() will return the main thread context from threads not using a main loop in any case. But I could use the main context here to make it explicit.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>