Re: [Development] Threads and the SQL Module

2017-02-16 Thread Eric Lemanisser
Thanks for pointing this out Łukasz, I created a change to disable useless mutexes on sqlite db connection : https://codereview.qt-project.org/#/c/185835/ Unfortunately that would break your usage, but it seems like it is already broken as Lorenz explained. All db intensive usage should see a perfr

Re: [Development] Threads and the SQL Module

2017-02-15 Thread Samuel Nevala
Hi, Just recently needed to fix threading issues with SQLite on non-Qt-context. Here here is obsolete information that helped me:). http://www.sqlite.org/cvstrac/wiki?p=MultiThreading. From that doc: "By "threadsafe" we mean that you can use different SQLite database connections in different threa

Re: [Development] Threads and the SQL Module

2017-02-15 Thread Lorenz Haas
Hi, AFAIS it does not matter if sqlite is thread safe or not. The problem is that QSQLiteDriver itself is not thread safe. For example if two threads call beginTransaction() on the same driver and the "COMMIT" fails, both threads will call QSqlDriver::setLastError() which does "d->error = error;".

Re: [Development] Threads and the SQL Module

2017-02-15 Thread Jason H
Qt's API, and the corruption stopped.    There may be other issues at play, but https://sqlite.org/faq.html questions 5 & 6 paint a more complicated picture.    Sent: Wednesday, February 15, 2017 at 7:37 AM From: "Łukasz Korbel" To: development Subject: [Development] Th

[Development] Threads and the SQL Module

2017-02-15 Thread Łukasz Korbel
According to http://doc.qt.io/qt-5/threads-modules.html#threads-and-the-sql-module database connection should be used within one thread *only*. I have checked SQLite driver and according to https://www.sqlite.org/threadsafe.html it supports multithreading by default. And it seems that Qt implement