> > as in the non-threaded case, or do we get
> > 
> >     $global::{foo} -> *global::foo -> &global::foo -> { print 1 }
> >     $thread::{foo} -> *thread::foo -> &thread::foo -> { print 2 }

> Okay, I understand.  Here's how I perceive it....
> 
> There is no global::foo, just two thread-specific foos.  In which case,
> the eval'd foo would create (or replace) that thread's previous foo.

[examples snipped]

Based on your examples, I have to assume that you are serious about
RFC1v3 item 6:

6. Modules should be loaded into the thread-global space when used
   [...]
   Subsequent threads should then reslurp these modules back in on 
   their start up.
   [...]
   each thread needs to reuse the original modules upon creation.
   [...]
   This, of course, could lead to massive program bloat


This is a non-starter for me. Right now, I am working on apps that may
create 10 threads per *second*. I cannot possibly get the performance
I need if every thread has to recompile all its own modules.

We could either discuss alternate approaches for RFC1, or I could
submit a new RFC for a thread architecture that gives me the
performance I want.


- SWM

Reply via email to