I understand what a deadlock is, and I know it's not technically a
deadlock. This is why I stated the title as deadlock behavior.

Anyway, like I said, I can set the busy timeout to 100 seconds, and it
still hangs for 100 seconds, even though the queries being performed
by either thread should not take longer than a few millisecs at most.

Any thoughts on my latest test with the begin exclusive method?

On 4/8/09, Griggs, Donald <donald.gri...@allscripts.com> wrote:
>
>
> -----Original Message-----
> From: sqlite-users-boun...@sqlite.org
> [mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Dave Brown
> Sent: Wednesday, April 08, 2009 1:16 PM
> To: General Discussion of SQLite Database
> Subject: Re: [sqlite] Strange sqlite_busy deadlock behavior
>
> I tried the BEGIN EXCLUSIVE method, but now the problem is that thread-A
> is in the middle of a query doing sqlite3_step() to get results, and
> thread-B tries a "begin exclusive" and gets back SQLITE_BUSY  in the
> deadlock situation :)
>
> I guess I am forced to use your 2nd method??
>
> ========================
> ========================
> Hi Dave,
>
> A *deadlock* would mean that neither process will ever proceed.
>     http://en.wikipedia.org/wiki/Deadlock
>
> In your situation, Thread-B would simply wait until thread-A finishes
> --- either via some sort of inter-thread communication, or via polling
> on the part of thread-B.
> Thread-B experiences a delay, but no deadlock occurs.
>
> Presumably, thread-A is designed to "step lively" and not dally
> unnecessarily.
>
> Of course, the 2nd method is great if you have no concerns about
> isolation.
>   ("PRAGMA read_uncommitted=ON")
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to