56 lines
1.3 KiB
C
56 lines
1.3 KiB
C
|
/*
|
||
|
** 2020 September 5
|
||
|
**
|
||
|
** The author disclaims copyright to this source code. In place of
|
||
|
** a legal notice, here is a blessing:
|
||
|
**
|
||
|
** May you do good and not evil.
|
||
|
** May you find forgiveness for yourself and forgive others.
|
||
|
** May you share freely, never taking more than you give.
|
||
|
**
|
||
|
*************************************************************************
|
||
|
**
|
||
|
**
|
||
|
*/
|
||
|
|
||
|
|
||
|
/*
|
||
|
*/
|
||
|
static char *shared_thread1(int iTid, void *pArg){
|
||
|
Error err = {0}; /* Error code and message */
|
||
|
|
||
|
while( !timetostop(&err) ){
|
||
|
Sqlite db = {0}; /* SQLite database connection */
|
||
|
opendb(&err, &db, "test.db", 0);
|
||
|
sql_script(&err, &db, "SELECT * FROM t1");
|
||
|
closedb(&err, &db);
|
||
|
}
|
||
|
print_and_free_err(&err);
|
||
|
return sqlite3_mprintf("done!");
|
||
|
}
|
||
|
|
||
|
|
||
|
static void shared1(int nMs){
|
||
|
Error err = {0};
|
||
|
Sqlite db = {0}; /* SQLite database connection */
|
||
|
Threadset threads = {0};
|
||
|
int ii;
|
||
|
|
||
|
opendb(&err, &db, "test.db", 1);
|
||
|
sql_script(&err, &db, "CREATE TABLE t1(x)");
|
||
|
closedb(&err, &db);
|
||
|
|
||
|
setstoptime(&err, nMs);
|
||
|
sqlite3_enable_shared_cache(1);
|
||
|
|
||
|
for(ii=0; ii<5; ii++){
|
||
|
launch_thread(&err, &threads, shared_thread1, 0);
|
||
|
}
|
||
|
|
||
|
join_all_threads(&err, &threads);
|
||
|
sqlite3_enable_shared_cache(0);
|
||
|
|
||
|
print_and_free_err(&err);
|
||
|
}
|
||
|
|