gitlab.com/CoiaPrant/sqlite3@v1.19.1/testdata/tcl/tt3_shared.c (about) 1 /* 2 ** 2020 September 5 3 ** 4 ** The author disclaims copyright to this source code. In place of 5 ** a legal notice, here is a blessing: 6 ** 7 ** May you do good and not evil. 8 ** May you find forgiveness for yourself and forgive others. 9 ** May you share freely, never taking more than you give. 10 ** 11 ************************************************************************* 12 ** 13 ** 14 */ 15 16 17 /* 18 */ 19 static char *shared_thread1(int iTid, void *pArg){ 20 Error err = {0}; /* Error code and message */ 21 22 while( !timetostop(&err) ){ 23 Sqlite db = {0}; /* SQLite database connection */ 24 opendb(&err, &db, "test.db", 0); 25 sql_script(&err, &db, "SELECT * FROM t1"); 26 closedb(&err, &db); 27 } 28 print_and_free_err(&err); 29 return sqlite3_mprintf("done!"); 30 } 31 32 33 static void shared1(int nMs){ 34 Error err = {0}; 35 Sqlite db = {0}; /* SQLite database connection */ 36 Threadset threads = {0}; 37 int ii; 38 39 opendb(&err, &db, "test.db", 1); 40 sql_script(&err, &db, "CREATE TABLE t1(x)"); 41 closedb(&err, &db); 42 43 setstoptime(&err, nMs); 44 sqlite3_enable_shared_cache(1); 45 46 for(ii=0; ii<5; ii++){ 47 launch_thread(&err, &threads, shared_thread1, 0); 48 } 49 50 join_all_threads(&err, &threads); 51 sqlite3_enable_shared_cache(0); 52 53 print_and_free_err(&err); 54 } 55