0
我有函數A和函數B.兩個函數同時訪問數據庫
函數A循環運行。每6秒更新一次數據庫。
功能B在用戶更改某些內容時更新數據庫。
從長遠來看,這兩個函數試圖訪問數據庫,導致在sqlite崩潰相同。
請建議一種方法來避免這種情況。
下面是我的函數B
while(1)
{
tvAudioMgrInstance->updateDatabase();
if(errno != EINTR)
{
// In Android sleep() function takes argument as seconds
rc = sleep(PERIODIC_UPDATE_DATABASE_TIME);
}
if((rc != 0)||(errno == EINTR))//even checking errno alone is enough..as errno is global to the thread alone
{
tvAudioMgrInstance->updateDatabase();
#if TVAUDIOMANAGER_LOG_ENABLE
ALOGD("Exit AUDMGR Pthread");
#endif
break;
}
}
一些代碼會很好嗎? – Arion
也許這有點幫助http://stackoverflow.com/questions/4060772/sqlite3-concurrent-access – tanaydin
這是一些很好的信息。我的函數執行寫入操作。理想情況下,sqlite寫操作應該被鎖定,但是會發生這種崩潰。我想通過使用一些標誌避免函數調用?那會很好。? – user3374737