Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static Mutex s_dinosaurMutex;
- static vector<Dinosaur> s_dinosaurList;
- void AddDinosaur(const Dinosaur& dinosaur)
- {
- s_dinosaurMutex.Lock();
- s_dinosaurList.push_back(dinosaur);
- s_dinosaurMutex.Unlock();
- }
- void RemoveDinosaur(const Dinosaur& dinosaur)
- {
- s_dinosaurMutex.Lock();
- vector<IMadderReceiver*>::iterator it = find(s_dinosaurList.begin(), s_dinosaurList.end(), dinosaur);
- if (it != s_dinosaurList.end())
- s_dinosaurList.erase(it);
- s_dinosaurMutex.Unlock();
- }
- void FeedDinosaur(const Dinosaur& dinosaur)
- {
- s_dinosaurMutex.Lock();
- vector<IMadderReceiver*>::iterator it = find(s_dinosaurList.begin(), s_dinosaurList.end(), dinosaur);
- if (it != s_dinosaurList.end())
- (*it).Feed(); // Feeding a dinosaur can take a long time, ~ 1 second
- s_dinosaurMutex.Unlock();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement