When in void SessionPool::closeAll(SessionList& sessionList) we call (*it)->session()->close(); the correspond function of SessionImpl is called.
About SQLite::SessionImpl we have this code
void SessionImpl::close()
{
if (_pDB)
{
sqlite3_close(_pDB);
_pDB = 0;
}
_connected = false;
}
accorling to this docs
https://www.sqlite.org/c3ref/close.html
the function sqlite3_close(_pDB); can fail with SQLITE_BUSY. So we set NULL to a not closed HANDLE.
I think we should check if sqlite3_close(_pDB); is working as we expect, because if you have for example an in memory db, you will not obtain the "memory clear" you expect when you close session. What do you think?
I do not know in other backend (like MySql) how it works
When in
void SessionPool::closeAll(SessionList& sessionList)we call(*it)->session()->close();the correspond function of SessionImpl is called.About SQLite::SessionImpl we have this code
accorling to this docs
https://www.sqlite.org/c3ref/close.html
the function
sqlite3_close(_pDB);can fail with SQLITE_BUSY. So we set NULL to a not closed HANDLE.I think we should check if
sqlite3_close(_pDB);is working as we expect, because if you have for example an in memory db, you will not obtain the "memory clear" you expect when you close session. What do you think?I do not know in other backend (like MySql) how it works