I register a clean up handler to explicitly untie the session variable. I am
not
sure how to do this in the setup you have running...so I can't be of much
explicit help.
Jay
----- Original Message -----
From: "Ken Williams" <[EMAIL PROTECTED]>
To: "Perrin Harkins" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Friday, January 18, 2002 1:53 AM
Subject: Re: Apache::Session getting DESTROYed in wrong order
>
> On Friday, January 18, 2002, at 12:44 AM, Perrin Harkins wrote:
>
> >> In a Mason context, which is where I'm using it, I do this in my
> >> top-level autohandler (ignore the main:: subroutines, they're just for
> >> pedagogy):
> >>
> >>
> >> <%init>
> >> # 'local' so it's available to lower-level components
> >> local *session;
> >>
> >> my $dbh = &::get_dbh;
> >> my $session_id = &::get_cookie('_session_id');
> >> tie %session, 'Apache::Session::MySQL', $session_id,
> >> {Handle => $dbh, LockHandle => $dbh};
> >> ...
> >> </%init>
> >
> > Geez, that's awfully confusing to look at (local and typeglobs is not a
> > newbie-friendly combo). Isn't there a simpler way? What about putting
> > it in pnotes?
>
> I don't think there's a simpler way. Putting it in pnotes means that
> all other components will also have to use $r->pnotes('session'), rather
> than just using %session.
>
> Perhaps "local(*session)" is better than "local *session"? It at least
> looks less like a "pointer to local". ;-)
>
> -Ken
>
>