@@ -211,22 +211,27 @@ def _commit(self):
211211 if self .session :
212212 with debug_transaction (self , "session.commit_transaction()" ):
213213 self .session .commit_transaction ()
214- self .session .end_session ()
215- self .session = None
214+ self ._end_session ()
216215
217216 @requires_transaction_support
218217 def _rollback (self ):
219218 if self .session :
220219 with debug_transaction (self , "session.abort_transaction()" ):
221220 self .session .abort_transaction ()
222- self .session = None
221+ self ._end_session ()
223222
224223 def _start_transaction (self ):
224+ # Private API, specific to this backend.
225225 if self .session is None :
226226 self .session = self .connection .start_session ()
227227 with debug_transaction (self , "session.start_transaction()" ):
228228 self .session .start_transaction ()
229229
230+ def _end_session (self ):
231+ # Private API, specific to this backend.
232+ self .session .end_session ()
233+ self .session = None
234+
230235 @requires_transaction_support
231236 def _start_transaction_under_autocommit (self ):
232237 # Implementing this hook (intended only for SQLite), allows
@@ -258,7 +263,8 @@ def close_pool(self):
258263 """Close the MongoClient."""
259264 # Clear commit hooks and session.
260265 self .run_on_commit = []
261- self .session = None
266+ if self .session :
267+ self ._end_session ()
262268 connection = self .connection
263269 if connection is None :
264270 return
0 commit comments