On 2010-12-18 15:57:50 -0500, "Robert Jacques" <[email protected]> said:

On Sat, 18 Dec 2010 03:27:22 -0700, Pelle Månsson <[email protected]> wrote:

On 12/18/2010 10:00 AM, Jonathan M Davis wrote:
The problem is that the OP wants the static constructors to be skipped.  If
they're skipped, anything and everything which could be affected by that can't be used. That pretty much means not using TLS, since the compiler isn't going to be
able to track down which variables in TLS will or won't be affected by  it. So,
you're stuck using shared memory only. _That_ is where the problem  comes in.

Exactly, not using TLS. You can still use the heap, as it is not thread local. Meaning you can create non-shared anything all you like, as long as you're not using TLS.

Except that the 'heap' internally uses TLS. The GC does need and use TLS.

Using D's TLS for the GC is an implementation choice, not a requirement. If someone wants to optimize 'spawn' for pure functions by skipping D's TLS initialization, he can make the GC and the array appending cache work with that.

--
Michel Fortin
[email protected]
http://michelf.com/

Reply via email to