On Jun 10, 2008, at 7:55 PM, Igor Tandetnik wrote: > D. Richard Hipp <[EMAIL PROTECTED]> wrote: >> On Jun 10, 2008, at 4:04 PM, Robert Lehr wrote: >>> Specifically, does SQLite lock the DBs incrementally, as they are >>> accessed within the transaction? Or does it lock ALL DBs? >> >> Databases are locked as needed - incrementally. > > So this is another possible source of deadlocks, right? One connection > locks database A, then tries to lock database B. At the same time, > another connection locks database B, then tries to lock database A. > > Is such a deadlock detected, in the same way a deadlock caused by two > read-then-write transactions on a single database is? In the latter > case, if I recall correctly, the deadlock detection causes the > statement > to fail with SQLITE_BUSY immediately, without calling the busy handler > (since waiting won't help any).
In this case, both processes wait because there is still the possibility that one will abandon its lock attempt and commit what it has already, allowing the other to proceed. D. Richard Hipp [EMAIL PROTECTED] _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users