fix sqlite connection lock

This commit is contained in:
2024-05-04 15:03:40 +08:00
parent 1e0cc1ec74
commit a1a7760415

View File

@@ -23,14 +23,14 @@ namespace hpcstat::sql
(std::optional<std::string> dbfile = std::nullopt) (std::optional<std::string> dbfile = std::nullopt)
{ {
if (dbfile) return std::make_optional<zxorm::Connection<LoginTable, LogoutTable, SubmitJobTable, FinishJobTable>> if (dbfile) return std::make_optional<zxorm::Connection<LoginTable, LogoutTable, SubmitJobTable, FinishJobTable>>
(dbfile->c_str()); (dbfile->c_str(), SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_FULLMUTEX);
else if (auto datadir = env::env("HPCSTAT_DATADIR", true); !datadir) else if (auto datadir = env::env("HPCSTAT_DATADIR", true); !datadir)
return std::nullopt; return std::nullopt;
else else
{ {
auto dbfile = std::filesystem::path(*datadir) / "hpcstat.db"; auto dbfile = std::filesystem::path(*datadir) / "hpcstat.db";
return std::make_optional<zxorm::Connection<LoginTable, LogoutTable, SubmitJobTable, FinishJobTable>> return std::make_optional<zxorm::Connection<LoginTable, LogoutTable, SubmitJobTable, FinishJobTable>>
(dbfile.c_str()); (dbfile.c_str(), SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_FULLMUTEX);
} }
} }
bool initdb() bool initdb()