How does it deal with the problem where a pointer in TLS points to global data,
Need to run stop-the-world for shared heap. But it would be interesting to have blocks that have no shared pointers in them.
or worse yet, a pointer in the global heap points to TLS?
Could you give an example?
I'm pretty sure it can't without doing a full pass over the entire heap, which seems to me like it defeats the purpose.
Yeah.
But I may just be missing out on some restriction (type system or whatever) Objective-C has that makes it feasible.
