response.custom_commit patch, thanks Jonathan

This commit is contained in:
Massimo Di Pierro
2012-04-07 16:56:32 -05:00
parent 4fbe3d6e2a
commit 8dc7d89143
3 changed files with 27 additions and 20 deletions
+1 -1
View File
@@ -1 +1 @@
Version 1.99.7 (2012-04-07 16:53:28) dev Version 1.99.7 (2012-04-07 16:56:18) dev
+7 -2
View File
@@ -431,11 +431,13 @@ class ConnectionPool(object):
@staticmethod @staticmethod
def close_all_instances(action): def close_all_instances(action):
""" to close cleanly databases in a multithreaded environment """ """ to close cleanly databases in a multithreaded environment """
if not hasattr(thread, 'instances'): if hasattr(thread, 'instances'):
return
while thread.instances: while thread.instances:
instance = thread.instances.pop() instance = thread.instances.pop()
if action: if action:
if callable(action):
action(instance)
else:
getattr(instance, action)() getattr(instance, action)()
# ## if you want pools, recycle this connection # ## if you want pools, recycle this connection
really = True really = True
@@ -448,6 +450,9 @@ class ConnectionPool(object):
sql_locker.release() sql_locker.release()
if really: if really:
getattr(instance, 'close')() getattr(instance, 'close')()
if callable(action):
action(None)
return return
def find_or_make_work_folder(self): def find_or_make_work_folder(self):
+4 -2
View File
@@ -515,8 +515,10 @@ def wsgibase(environ, responder):
if response.do_not_commit is True: if response.do_not_commit is True:
BaseAdapter.close_all_instances(None) BaseAdapter.close_all_instances(None)
elif response._custom_commit: # elif response._custom_commit:
response._custom_commit() # response._custom_commit()
elif response.custom_commit:
BaseAdapter.close_all_instances(response.custom_commit)
else: else:
BaseAdapter.close_all_instances('commit') BaseAdapter.close_all_instances('commit')