fork(2) download
  1. // Example program
  2. #include <iostream>
  3. #include <string>
  4. #include <mutex>
  5. #include <map>
  6. #include <thread>
  7.  
  8. struct sObjectInfo {
  9. std::mutex mut;
  10. };
  11.  
  12. std::map<int, sObjectInfo*> mymap;
  13.  
  14. void foo() {
  15. std::unique_lock<std::mutex> ulock(mymap[0]->mut, std::defer_lock);
  16. if (ulock.try_lock()) {
  17. std::cout << "locked.." << std::endl;
  18. }
  19. else {
  20. std::cout << "cant lock" << std::endl;
  21. }
  22. }
  23.  
  24. int main()
  25. {
  26. sObjectInfo* s1 = new sObjectInfo();
  27. sObjectInfo* s2 = new sObjectInfo();
  28.  
  29. mymap[0] = s1;
  30. mymap[1] = s2;
  31.  
  32. std::thread t1(foo);
  33. t1.join();
  34. }
  35.  
Success #stdin #stdout 0s 4348KB
stdin
Standard input is empty
stdout
locked..