For us the point of ithreads is that you don't have to mess about passing messages or whatever - all those problems have been solved by the dudes who wrote the threading module and you and they have given you shared variables for your convenience.
I had supposed that the entire rationale of ithreads / shared variables is to give you shared variables to make the programmer's life easier.
Which si why I think you should take a look at forks.pm: it gives you the same API as Perl ithreads, and you don't even have to change your source, just make sure that "forks" and "forks::threads" are loaded _before_ "use threads" is done.
Apart from the memory usage we it has done everything we want and performs quickly and reliably.
Forks.pm will use a lot less memory (because you get the OS's COW behaviour you expected) at the expense of a little more CPU usage and latency.
Liz
-- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html