summaryrefslogtreecommitdiff
path: root/docs/tutorials/bfgwiki2/src/basiclayout
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2010-01-13 15:14:03 +0000
committerChris McDonough <chrism@agendaless.com>2010-01-13 15:14:03 +0000
commit788748e2afedb3d1e180a3033e20ed2d995056a3 (patch)
tree2deb7a16b37ce47341649ad82bdf136a37e751f2 /docs/tutorials/bfgwiki2/src/basiclayout
parentde449d91fafc0fd4bec6d552dab44845b0948784 (diff)
downloadpyramid-788748e2afedb3d1e180a3033e20ed2d995056a3.tar.gz
pyramid-788748e2afedb3d1e180a3033e20ed2d995056a3.tar.bz2
pyramid-788748e2afedb3d1e180a3033e20ed2d995056a3.zip
- In ``bfg_routesalchemy``, ``bfg_alchemy`` and ``bfgwiki2`` tutorial,
clean up the SQLAlchemy connection by registering a ``repoze.tm.after_end`` callback instead of relying on a ``__del__`` method of a ``Cleanup`` class added to the WSFI environment. The ``__del__`` strategy was fragile and caused problems in the wild. Thanks to Daniel Holth for testing.
Diffstat (limited to 'docs/tutorials/bfgwiki2/src/basiclayout')
-rw-r--r--docs/tutorials/bfgwiki2/src/basiclayout/tutorial/run.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/docs/tutorials/bfgwiki2/src/basiclayout/tutorial/run.py b/docs/tutorials/bfgwiki2/src/basiclayout/tutorial/run.py
index bc1197115..6105d3eea 100644
--- a/docs/tutorials/bfgwiki2/src/basiclayout/tutorial/run.py
+++ b/docs/tutorials/bfgwiki2/src/basiclayout/tutorial/run.py
@@ -1,17 +1,17 @@
+import transaction
+
from repoze.bfg.configuration import Configurator
+from repoze.tm import after_end
+from repoze.tm import isActive
from tutorial.models import DBSession
from tutorial.models import initialize_sql
-class Cleanup:
- def __init__(self, cleaner):
- self.cleaner = cleaner
- def __del__(self):
- self.cleaner()
-
def handle_teardown(event):
environ = event.request.environ
- environ['tutorial.sasession'] = Cleanup(DBSession.remove)
+ if isActive(environ):
+ t = transaction.get()
+ after_end.register(DBSession.remove, t)
def app(global_config, **settings):
""" This function returns a WSGI application.