mirror of
				https://github.com/glebarez/go-sqlite.git
				synced 2025-11-01 03:22:33 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			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);
 | |
| }
 | |
| 
 | 
