Guest User

Untitled

a guest
Feb 22nd, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.59 KB | None | 0 0
  1. template< typename T >
  2. class ThreadSafeList{
  3. Q_DISABLE_COPY(ThreadSafeList)
  4. public:
  5. ThreadSafeList():
  6. m_lock{},
  7. m_list{}
  8. {}
  9. virtual ~ThreadSafeList(){}
  10. QList<T>& lockForRead(){
  11. m_lock.lockForRead();
  12. return m_list;
  13. }
  14. QList<T>& lockForWrite(){
  15. m_lock.lockForWrite();
  16. return m_list;
  17. }
  18. //don't forget call this method after lockForRead()/lockForWrite()
  19. //and don't use reference to m_list after call unlock
  20. void unlock(){
  21. m_lock.unlock();
  22. }
  23. private:
  24. QReadWriteLock m_lock;
  25. QList<T> m_list;
  26. };
Add Comment
Please, Sign In to add comment