On the other hand, lib/base.py does correctly clean up SQLAlchemy
sessions. Here is what happens:

wsgi pipeline = sa plugin -> application

sa plugin acccesses session
(if there is no session) the real session is lazily created in a
threadlocal thanks to scoped_session()
look up user
sa plugin calls app

app does its thing
app cleans up that threadlocal session

Charmingly, this code creates the database session in one level of the
call stack and cleans it up at another. repoze.who.plugins.sa cannot
touch the session on egress. The programmer must remember to clean up
the session if he used it in application init, otherwise the first
request will get a slightly-used session.

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.

Reply via email to