Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.41 KB | None | 0 0
  1. template<typename _Lock>
  2. void
  3. wait(_Lock& __lock)
  4. {
  5. shared_ptr<mutex> __mutex = _M_mutex; // <-- Extend lifetime of mutex.
  6. unique_lock<mutex> __my_lock(*__mutex);
  7. _Unlock<_Lock> __unlock(__lock);
  8. // *__mutex must be unlocked before re-locking __lock so move
  9. // ownership of *__mutex lock to an object with shorter lifetime.
  10. unique_lock<mutex> __my_lock2(std::move(__my_lock));
  11. _M_cond.wait(__my_lock2);
  12. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement