I am seeing the equivalent of a deadlock, with SQLITE_BUSY being returned forever from my code which has 2 threads using SQLite. I can repro this at will. Each thread is using it's own connection to the sqlite database, so they are not sharing the same connection.
Here is what is happening in chronological order: Thread A: Prepare statement-A Thread B: Prepare statement-B Thread B: Bind some variables to statement-B Thread B: Prepare and execute "BEGIN IMMEDIATE" statement. Thread B: Execute statement-B Thread A: Bind variables to statement-A Thread A: Execute statement-A ( statement-A is a one-line simple SQL query like "SELECT name FROM table WHERE id= ?;" ) Thread B: Prepare and execute "COMMIT" statement. At this point, thread A is deep into sqlite code calling winSleep(), and thread B is getting SQLITE_BUSY returned. I can even set the busy timeout to 100 seconds and the same thing happens -- hangs until 100 seconds elapse, then busy returned. Anyone know why??? _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users