On 5 Nov 2014, at 10:05pm, nicolas riesch <nicolas.rie...@gmail.com> wrote:
> Even if the user writes a Go program with only one logical thread, he has > no control about which OS thread will process a function call. > > This means that EACH SUCCESSIVE function in the sequence above can be > processed on a DIFFERENT OS THREAD. > > It means that to run safely, sqlite source code should not depend in any > way on the identity of the threads, which must be fully interchangeable. > So, the following conditions should be true. Are these sentences correct ? > > 1) no local-thread-storage is used in sqlite code. > 2) thread id (gettid()) are not used. > 3) when a function of the API enters a mutex, it leaves it before the > function returns. > Between two API function calls, no mutex should be locked (else, it > would be impossible to ensure that the mutex is unlocked by the same thread > that locked it). > 4) all file locking information is attached to connections, and not to > threads. Since you don't already refer to it, can I ask that you read this page <https://www.sqlite.org/threadsafe.html> and then ask any questions which remain, plus any new ones ? You should probably tell us which threading mode you intend to use based on the needs you outline above. Simon. _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users