Fixed #12452 -- Ensured that all connections are closed when a request is finished. Thanks to samuel@lefora.com for the report and fix.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@12008 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2009-12-28 05:11:57 +00:00
parent 1d581cda67
commit 9319f89547
1 changed files with 4 additions and 3 deletions

View File

@ -79,14 +79,15 @@ IntegrityError = backend.IntegrityError
# Register an event that closes the database connection # Register an event that closes the database connection
# when a Django request is finished. # when a Django request is finished.
def close_connection(**kwargs): def close_connection(**kwargs):
connection.close() for conn in connections.all():
conn.close()
signals.request_finished.connect(close_connection) signals.request_finished.connect(close_connection)
# Register an event that resets connection.queries # Register an event that resets connection.queries
# when a Django request is started. # when a Django request is started.
def reset_queries(**kwargs): def reset_queries(**kwargs):
for connection in connections.all(): for conn in connections.all():
connection.queries = [] conn.queries = []
signals.request_started.connect(reset_queries) signals.request_started.connect(reset_queries)
# Register an event that rolls back the connections # Register an event that rolls back the connections