[yunqa.de] TDISQLite3Database.UnRegisterStatement thread-safe?

  • From: "Nick Bradbury" <nick.bradbury@xxxxxxxxx>
  • To: <yunqa@xxxxxxxxxxxxx>
  • Date: Sat, 29 Aug 2009 16:29:25 -0500

Several customers have sent me error logs from my application which show
EListError exceptions in TDISQLite3Database.UnRegisterStatement.  


My app always writes to the database in the main thread, but there are
several read operations that occur in background threads which rely on
prepared statements created on-the-fly in those threads.


Looking at DISQLite3Database.pas, I see that the list of prepared statements
(FStatements) is a TList rather than a thread-safe list (TThreadList).
Could this be the cause of these EListError exceptions?



Nick Bradbury


PS: I'm using DISQLite v2.0.9, but my error logs show similar reports from
when I used v2.0.8.

Other related posts: