WAL_CHECKPOINT on close

This commit is contained in:
Victor Shyba 2020-11-16 10:53:41 -03:00
parent f35e879852
commit b8b9dcc2ee

View file

@ -121,7 +121,12 @@ class AIOSQLite:
if self._closing: if self._closing:
return return
self._closing = True self._closing = True
await asyncio.get_event_loop().run_in_executor(self.writer_executor, self.writer_connection.close)
def __checkpoint_and_close(conn: sqlite3.Connection):
conn.execute("PRAGMA WAL_CHECKPOINT(FULL);")
conn.close()
await asyncio.get_event_loop().run_in_executor(
self.writer_executor, __checkpoint_and_close, self.writer_connection)
self.writer_executor.shutdown(wait=True) self.writer_executor.shutdown(wait=True)
self.reader_executor.shutdown(wait=True) self.reader_executor.shutdown(wait=True)
self.read_ready.clear() self.read_ready.clear()