decimusphostle

boost file lock code

Oct 21st, 2011
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. bool interrupted(false);
  2.  
  3. void
  4. signal_callback(int signum)
  5. {
  6. cout << "Caught signal: " << signum << endl;
  7.  
  8. interrupted = true;
  9. }
  10.  
  11. int
  12. main(int argc,
  13. char * argv[])
  14. {
  15. ::signal(SIGINT, signal_callback);
  16.  
  17. string filename("foo");
  18. int pid(getpid());
  19.  
  20. file_lock _file_lock(filename.c_str());
  21. scoped_lock<file_lock> _scoped_lock(_file_lock, try_to_lock);
  22.  
  23. cout << "Process with PID: " << pid
  24. << " has lock on file: " << filename << endl;
  25.  
  26. while(true)
  27. {
  28. //do work
  29. //...
  30.  
  31. if(interrupted)
  32. {
  33. cout << "Exiting now" << endl;
  34. break;
  35. }
  36.  
  37. cout << pid << " still holding on to lock on foo" << endl;
  38.  
  39. ::sleep(5);
  40. }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment