#include #include #include boost::condition_variable cond; boost::mutex mut; #define FNAME ("remove-test") void remover() { while(1) { boost::filesystem::remove(FNAME); } } void creater() { for(int i=0; i<100000; i++) std::fstream(FNAME, std::fstream::out); } int main() { boost::filesystem::remove(FNAME); boost::filesystem::remove(FNAME); std::cout << "If you got this far, it's OK to remove a file that doesn't exist\n" "Now trying with one creator thread and two remover threads.\n" "This is likely to crash after just a few seconds at most." << std::endl; boost::thread c(creater), r1(remover), r2(remover); c.join(); r1.interrupt(); r1.join(); r2.interrupt(); r2.join(); }