Hello Igor,

That very well maybe it.  I am not at home so can't test for sure but I reset 
the prepared statements right before I use them so they are left hanging if 
another thread came in.

Interesting is the impression I had with prepared statements was the reset was 
only necessary if you wanted to reuse that statement.  Since each each DB 
connection is in its own instance of a class (with it own set of prepared 
statements) I would not think there would be any dependency on different 
physical prepared statements on different threads.  I would expect this with 
incomplete transactions.

Anyway, thanks for the insight.

John

--- On Thu, 5/12/11, Igor Tandetnik <itandet...@mvps.org> wrote:

> From: Igor Tandetnik <itandet...@mvps.org>
> Subject: Re: [sqlite] Common Multi-treaded Problem
> To: sqlite-users@sqlite.org
> Date: Thursday, May 12, 2011, 12:35 PM
> On 5/12/2011 12:31 PM, John Deal
> wrote:
> > When I allow multiple readers with each thread using a
> different DB
> > connection (open with the same flags) and each thread
> having
> > exclusive use of its DB connection (no sharing of
> connections) and if
> > more than one thread is reading the DB at the same
> time, the DB
> > becomes locked for writing even when all the reads are
> finished.
> 
> My first inclination would be to look for places where you
> leak active 
> statement handles, by failing to reset or finalize
> statements. The read 
> operation is not really finished until the statement is
> reset/finalized.
> -- 
> Igor Tandetnik
> 
> _______________________________________________
> 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