From ba344843eb57bd93df8363ffdb384e6bf4c74fdd Mon Sep 17 00:00:00 2001 From: Min RK Date: Tue, 1 Dec 2015 11:36:22 +0100 Subject: [PATCH] add SessionManager.close allows explicit closing, rather than relying on implicit del, which can run in the wrong thread. --- notebook/services/sessions/sessionmanager.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/notebook/services/sessions/sessionmanager.py b/notebook/services/sessions/sessionmanager.py index ffd0cc28a..125940408 100644 --- a/notebook/services/sessions/sessionmanager.py +++ b/notebook/services/sessions/sessionmanager.py @@ -39,10 +39,16 @@ class SessionManager(LoggingConfigurable): self._connection = sqlite3.connect(':memory:') self._connection.row_factory = sqlite3.Row return self._connection - + + def close(self): + """Close the sqlite connection""" + if self._cursor is not None: + self._cursor.close() + self._cursor = None + def __del__(self): """Close connection once SessionManager closes""" - self.cursor.close() + self.close() def session_exists(self, path): """Check to see if the session for a given notebook exists"""