On 8/29/07, Ben Mann <[EMAIL PROTECTED]> wrote:

>  The problem is that connection A is calling a function which is attempting
> to open a new SHARED connection. Since it can't (B's PENDING prevents this,
> because of A's earlier SHARED connection), A blocks.
>
> If instead, A does not open a new connection, but uses what it already has
> open, it all works like a charm.
>
> I'm beginning to think this is expected behaviour.

What you described about the locking is correct.  The threading isn't
strictly relevant; locking is done on a per-connection basis, not
per-thread.

Note that the only reason it blocks is because you're using
sqlite_busy_timeout().  If you don't use that, you can detect and
handle the (immediate) SQLITE_BUSY return.

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to