On 20 April 2014 14:33, via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
On Sunday, 20 April 2014 at 00:59:26 UTC, Manu via Digitalmars-d wrote:
Interpretation: this struct and any data directly reachable from it is
guaranteed to not be GC allocated. Then a precise collector could avoid
scanning those and pointers to them.

Why wouldn't precise GC be able to do this anyway? It already has data
about everything it scans. It can easily produce a 'don't bother scanning
this' bit at the start of that data without programmer assistance?

It doesn't know what can be reached through a node in a graph. It doesn't know what is on the GC heap.


In a visual realtime app, the GC will only be acceptable when it will not
interrupt for more than 1ms or so (and I consider that quite generous, I'd
be more comfortable with < 500µs). Otherwise you'll lose frames anyway; if

No, because the @nogc thread will not be interrupted.

Think MVC: the model is under GC, the view/controller is under @nogc.

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?
@nogc just says the thread won't allocate, it can still be holding all the references it likes, and still needs to be scanned.