For more information, see:
For more information, see:
http://www.elemental-programming.org/Bigloo%20SQLI.html
(c) 2005/2006/2007 Hans Oesterholt-Dijkema. License: LGPL.
You can also look in the manual section of the Help Desk for "SQLD-SQLITE".
PROBLEMS WITH THREADS AND SQLITE ON LINUX (2007)
------------------------------------------------
Sqlite3 crashes when multiple threads go through the sqlite3 ffi interface.
Especially when the busy handler callback is called from multiple threads. A
work around has been made, using semaphores on the begin, query, commit and
rollback interfaces of the sqld-sqlite driver. This means that all queries
through the sqlite interface are serialized.
Also, when when within a transaction, all other threads are blocked from querying
sqlite3. A BAD SITUATION, BUT BETTER THEN A CRASH.
When your program goes in error during a transaction, you'll be essentially locked
out of the sqlite3 code. Use (sqld 'clean) in this situation. It will clear
the semaphores.
UNIX
----
NB. On Unix, try putting libsqlite3.so in /usr/local/lib or /usr/lib
Otherwise, set the environment variable LIBSQLITE=<directory of libsqlite3.so>
sqld-sqlite will search for either sqlite3 or libsqlite3 in that directory
DEBIAN 3.1 SARGE
----------------
Note on a standard debian installation: There will be no libsqlite3.so, instead
only a libsqlite3.so.0. This library won't be found.
---
$Id: doc.txt,v 1.3 2007/06/25 18:49:00 hoesterholt Exp $