add original source

This commit is contained in:
Bo Wang
2014-04-22 21:54:16 -04:00
parent f7a05be5e1
commit 6e45d14431
128 changed files with 5726 additions and 0 deletions

38
source/listing_9.13.cpp Normal file
View File

@@ -0,0 +1,38 @@
std::mutex config_mutex;
std::vector<interruptible_thread> background_threads;
void background_thread(int disk_id)
{
while(true)
{
interruption_point();
fs_change fsc=get_fs_changes(disk_id);
if(fsc.has_changes())
{
update_index(fsc);
}
}
}
void start_background_processing()
{
background_threads.push_back(
interruptible_thread(background_thread,disk_1));
background_threads.push_back(
interruptible_thread(background_thread,disk_2));
}
int main()
{
start_background_processing();
process_gui_until_exit();
std::unique_lock<std::mutex> lk(config_mutex);
for(unsigned i=0;i<background_threads.size();++i)
{
background_threads[i].interrupt();
}
for(unsigned i=0;i<background_threads.size();++i)
{
background_threads[i].join();
}
}