<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 20 April 2014 14:33, via Digitalmars-d <span dir="ltr"><<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Sunday, 20 April 2014 at 00:59:26 UTC, Manu via Digitalmars-d wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Interpretation: this struct and any data directly reachable from it is<br>
guaranteed to not be GC allocated. Then a precise collector could avoid<br>
scanning those and pointers to them.<br>
</blockquote>
<br></div><div class="">
Why wouldn't precise GC be able to do this anyway? It already has data<br>
about everything it scans. It can easily produce a 'don't bother scanning<br>
this' bit at the start of that data without programmer assistance?<br>
</div></blockquote>
<br>
It doesn't know what can be reached through a node in a graph. It doesn't know what is on the GC heap.<div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In a visual realtime app, the GC will only be acceptable when it will not<br>
interrupt for more than 1ms or so (and I consider that quite generous, I'd<br>
be more comfortable with < 500µs). Otherwise you'll lose frames anyway; if<br>
</blockquote>
<br></div>
No, because the @nogc thread will not be interrupted.<br>
<br>
Think MVC: the model is under GC, the view/controller is under @nogc.<br></blockquote><div><br></div><div>I don't really see why a proposed @nogc thread wouldn't hold references to GC allocated objects... what would such a thread do if it didn't have any data to work with?</div>
<div>@nogc just says the thread won't allocate, it can still be holding all the references it likes, and still needs to be scanned.</div></div></div></div>