On Tuesday, 02 August 2011 20:24:46 Fred Moyer wrote:
> I haven't used the worker mpm, but it looks like you might want to
> preload your handler in the httpd parent process.
Unlikely that that will help. threads::shared works by creating a
separate perl interpreter to keep the shared values. That interpreter
does not execute any program. It simply serves as shared storage. When a
variable is then marked as shared it is assigned magic to have the normal
accessor methods use the storage in the other interpreter. So, no matter
when the variable or the interpreter executing a program is created
shared variables are always fetched from the special storage interpreter.
The special storage interpreter is a global variable at C-level.
t/response/TestPerl/ithreads.pm in the modperl test suite exercises
shared variables. I'd take this as a starting point. First, I'd create a
simple shared scalar as a global counter. If that works (which I think it
does) the rest is how to use threads::shared correctly.
As for your code I think you could try to push shared apples like this
push(@fruits,share('apple'));
Perhaps even
push(@fruits,share(do {my $x='apple'}));
Torsten Förtsch
--
Need professional modperl support? Hire me! (http://foertsch.name)
Like fantasy? http://kabatinte.net