AFAIK Apache::Singleton works for MP2, also it does both per request and per
process singletons.


On 9/24/07, jk jk <[EMAIL PROTECTED]> wrote:
>
> I've been trying to use Apache::Singleton::Request under the assumption
> that you're right about Class::Singleton being the crux of the issue.
> Unfortunately, I can't get it working under Apache2.  Is there a different
> module for mp2/apache2 ?  Thanks for your patience. --JAK
>
> On 9/23/07, jk jk <[EMAIL PROTECTED]> wrote:
> >
> > Why is that?  Class::Singleton is modperl compatible, Apache::Singleton
> > is the same thing with a few more features.  Its purpose to simplify
> > singleton application creation.  My understanding was it would only allow a
> > single instance of the object to be created for each request, not forever.
> > Please explain your reasoning.  Thanks. --JAK
> >
> > On 9/23/07, Philippe M. Chiasson < [EMAIL PROTECTED]> wrote:
> > >
> > > jk jk wrote:
> > > > I'm trying to port a preexisting CGI app to mod_perl2 and could use
> > > some
> > > > help.
> > > >
> > > > Here goes a test case that should illustrate my problem:
> > > >
> > > > The code pasted below loads the page properly the first time it's
> > > > accessed.  However, upon multiple reloads in firefox, the headers
> > > either
> > > > disappear altogether or the page is downloaded in the download
> > > manager.
> > > > I assume this is because the wrong $r object is being accessed by
> > > the
> > > > request?  In any case, I'm at a loss and would really appreciate
> > > some
> > > > input.  Thanks in advance.
> > > > [...]
> > > >
> > > > =============
> > > > File: testme/testmod.pm
> > > > =============
> > > >
> > > > package testme::testmod;
> > > >
> > > > use Apache2::RequestUtil;
> > > > use strict;
> > > >
> > > > use base qw /Class::Singleton/;
> > >
> > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > >
> > > From the documentation of Class::Singleton:
> > >
> > > # this only gets called the first time instance() is called
> > >
> > > > sub _new_instance{
> > > >
> > > >     my ( $class, $r ) = @_;
> > > >
> > > >     my $self = {};
> > > >
> > > >     bless $self, $class;
> > > >
> > > >     $self->{r} = $r;
> > > >
> > > >     return ( $self );
> > > >
> > > > }
> > >
> > > So effectively, your code will capture the $r (once for each child)
> > > from the first request and keep it forever. Trying to use it for
> > > subsequent
> > > requests will cause the kind of problems you've seen.
> > >
> > >
> > > ------------------------------------------------------------------------
> > > Philippe M. Chiasson     GPG: F9BFE0C2480E7680 1AE53631CB32A107
> > > 88C3A5A5
> > > http://gozer.ectoplasm.org/
> > > m/gozer\@(apache|cpan|ectoplasm)\.org/
> > >
> > >
> > >
> >
>

Reply via email to