Please note that these are comments from a Parrot list lurker and outsider, but also as someone with some hands on experience with Perl threads... ;-) And probably stating the bleedingly obvious.

At 11:09 +0100 12/21/03, Leopold Toetsch wrote:
*If* ParrotClasses are per thread (very likely yes - different threads might create different objects of different classes dynamically) *and if* Parrot_class_register() creates entries in Parrot_base_vtables[], then this structure has to be per interpreter too.

I agree.


Ideally I'd see a COWed structure: a thread startup would not actually copy the main vtable structure. As soon as something needs to be specific for the thread, only then needs that structure to be copied for the thread (and possibly only that part that is actually different from the thread a thread is inheriting from.

The main problem with Perl 5 ithreads is the thread startup CPU and memory usage. It's what makes Perl 5 ithreads _very_ hard to use in a production environment. That overhead needs to be prevented at all costs in Parrot.


Hope this made sense.



Liz

Reply via email to