Thread et Database connection: Problème de RAM
Bonjour, je viens de tester cette bibliothèque, qui est vraiment très simple d'utilisation pour une petite base de données perso sous linux debian. Du beau travail et notamment au point de vue de la documentation.
Mais il semblerait qu'il ait encore une chose que je ne comprend pas
J'ai une classe DBInterface possédant une fonction statique qui initialise la base de données.
Cette fonction est appelé par le thread principal.
Code:
1 2 3 4 5 6 7 8
|
void QDABInterface::initDB() {
qx::QxSqlDatabase::getSingleton()->setDriverName("QSQLITE");
qx::QxSqlDatabase::getSingleton()->setDatabaseName("db/blablabla.sqlite");
qx::QxSqlDatabase::getSingleton()->setHostName("localhost");
qx::QxSqlDatabase::getSingleton()->setUserName("root");
qx::QxSqlDatabase::getSingleton()->setPassword("");
} |
Et dans la sortie log, je peux lire:
Citation:
[QxOrm] qx::QxSqlDatabase : create new database connection in thread '0x7f6698d02800' with key '{e8cb1e1f-60fa-457d-b328-429ee9b3c3e8}'
Dans cette classe j'ai une autre fonction saveBlabla.
Code:
1 2 3 4 5 6 7 8
|
void QDABInterface::saveBlaBla() {
//BlaBla_ptr est un smart point
// Il est effacé de la RAM correctement
blabla_ptr bla; bla.reset(new blabla());
qx::dao::insert(bla);
} |
Cette fonction va être appelée par un thread secondaire. Et lorsque je lance le thread je peux lire dans la sortie log
Citation:
[QxOrm] qx::QxSqlDatabase : create new database connection in thread '0x7f667a846700' with key '{2a81cdad-552c-4b4e-8af2-b01e14cdf857}'.
Si ce lance ce thread une deuxieme fois.
Citation:
[QxOrm] qx::QxSqlDatabase : create new database connection in thread '0x7f753a92d800' with key '{a8570e88-789d-41db-9653-8bb7e42222dc}'
Et ces connections s'ajoutent donc puisque si je fais
Code:
qx::QxSqlDatabase::getDatabase().connectionNames()
j'obtiens la liste des connections citées ci-dessus. Et j'obtient des résidus dans ma RAM!! Ce qui a le don de m'agacer fortement.
J'aimerais vraiment connaitre la marche à suivre pour pouvoir utiliser les fonctions de qx::dao dans une autre Thread. Merci d'avance et bon dimanche ;)
Amicalement.
Sizain