Advertisement
Guest User

Untitled

a guest
Jul 6th, 2015
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. static Mutex s_dinosaurMutex;
  2. static vector<Dinosaur> s_dinosaurList;
  3.  
  4. void AddDinosaur(const Dinosaur& dinosaur)
  5. {
  6. s_dinosaurMutex.Lock();
  7. s_dinosaurList.push_back(dinosaur);
  8. s_dinosaurMutex.Unlock();
  9. }
  10.  
  11. void RemoveDinosaur(const Dinosaur& dinosaur)
  12. {
  13. s_dinosaurMutex.Lock();
  14.  
  15. vector<IMadderReceiver*>::iterator it = find(s_dinosaurList.begin(), s_dinosaurList.end(), dinosaur);
  16. if (it != s_dinosaurList.end())
  17. s_dinosaurList.erase(it);
  18.  
  19. s_dinosaurMutex.Unlock();
  20. }
  21.  
  22. void FeedDinosaur(const Dinosaur& dinosaur)
  23. {
  24. s_dinosaurMutex.Lock();
  25.  
  26. vector<IMadderReceiver*>::iterator it = find(s_dinosaurList.begin(), s_dinosaurList.end(), dinosaur);
  27. if (it != s_dinosaurList.end())
  28. (*it).Feed(); // Feeding a dinosaur can take a long time, ~ 1 second
  29.  
  30. s_dinosaurMutex.Unlock();
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement