On Thu, Nov 07, 2019 at 09:26:46AM -0800, Shawn Wagner wrote: > This line stood out: > > > The main process opens the databases and then forks the other processes > which can then perform database operations using the already opened > databases. > > From > https://sqlite.org/howtocorrupt.html#_carrying_an_open_database_connection_across_a_fork_ > : > > > Do not open an SQLite database connection, then fork(), then try to use > that database connection in the child process. All kinds of locking > problems will result and you can easily end up with a corrupt database. > SQLite is not designed to support that kind of behavior. Any database > connection that is used in a child process must be opened in the child > process, not inherited from the parent. > > In this kind of situation, I usually use pthread_atfork() callbacks to > automate closing databases and then re-opening them in the parent and child.
Okay, thanks! I suspected it could be something like this, but couldn't find anything in the SQLite docs. I'll change my code and see what happens :-) Thanks again for the quick reply! Jukka Marin _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users