Initialize and Shutdown sqlite3 globals

sqlite3 recommends that sqlite3_initialize be called when the
application starts, and sqlite3_shutdown when it stops. Since we don't
always use sqlite3, we initialize it when a SQLiteDatabse is constructed
(calling sqlite3_initialize after initialized is a no-op). We call
sqlite3_shutdown when we see that there are no databases opened. The
number of open databases is tracked by an atomic g_dbs_open.
This commit is contained in:
Andrew Chow
2020-05-26 20:53:24 -04:00
parent 5a488b3d77
commit 3bfa0fe125
2 changed files with 54 additions and 3 deletions

View File

@@ -51,6 +51,8 @@ private:
const std::string m_file_path;
void Cleanup() noexcept;
public:
SQLiteDatabase() = delete;