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] -----------------------------------------------------------------------------