I've found the problem. It was caused by a pre-compiled statement in a third
party library. Since the library was used by several threads now, the
statement, compiled in the context of one thread, blocked the entire
database when an attempt way made to use it from another thread.

The programmer has changed his code to not use pre-compiled statements and
now it works, even if used by multiple threads. Another solution would have
been to maintain pre-compiled statements per thread.

Since this was really hard to track down, I wonder if there would have been
a way to get more info from SQLite, e.g. some debug log or anyhting?
Something telling me "I'm blocking everything because I here have an
statement which is in state "X" and hence no other thread can do anything
right now"...

-- Mario



_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to