|
Wouter van Marle
wouter at squirrel-systems.com
Tue May 10 02:53:21 EDT 2005
On Tue, 2005-05-10 at 02:01 -0400, Jim Gallacher wrote:
> This looks like a problem with session locking, which is the default
> when creating a session. Are you creating more than one session object
> in a request? If so you'll end up with a deadlock. For example the
> following code will deadlock as it is really just accessing the same
> session data:
>
> sess1 = Session.Session(req)
> sess2 - Session.Session(req)
This is really close to what I am doing. I've to shorten my code a lot
to get it posted here, but basically this happens:
def home(req):
sess = Session.Session(req)
if sess.is_new():
# get settings from cookies (using Cookie)
# page built up, using sess["language"] for the language setting.
sess.save()
return apache.OK
def english(req)
sess = Session.Session(req)
sess["language"] = "en"
sess.save()
home(req) # to redraw the main page
And same for other languages as well.
The page uses a little PSP to easily set some variables, no code in the
pages. It appears to hang on the Session.Session(req) call in the
english routine.
The english routine is called through a hyperlink off the main page (a
href main.py/english).
Wouter.
|