comparison Core/MultiThreading/ReaderWriterLock.cpp @ 769:3f946e5c3802

ReusableDicomUserConnection
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 30 Apr 2014 13:49:41 +0200
parents b2a62f22fbe8
children a811bdf8b8eb
comparison
equal deleted inserted replaced
766:0a2f8c707c78 769:3f946e5c3802
44 class ReaderLockable : public ILockable 44 class ReaderLockable : public ILockable
45 { 45 {
46 private: 46 private:
47 boost::shared_mutex& lock_; 47 boost::shared_mutex& lock_;
48 48
49 public: 49 protected:
50 ReaderLockable(boost::shared_mutex& lock) : lock_(lock)
51 {
52 }
53
54 virtual void Lock() 50 virtual void Lock()
55 { 51 {
56 lock_.lock_shared(); 52 lock_.lock_shared();
57 } 53 }
58 54
59 virtual void Unlock() 55 virtual void Unlock()
60 { 56 {
61 lock_.unlock_shared(); 57 lock_.unlock_shared();
62 } 58 }
59
60 public:
61 ReaderLockable(boost::shared_mutex& lock) : lock_(lock)
62 {
63 }
63 }; 64 };
64 65
65 66
66 class WriterLockable : public ILockable 67 class WriterLockable : public ILockable
67 { 68 {
68 private: 69 private:
69 boost::shared_mutex& lock_; 70 boost::shared_mutex& lock_;
70 71
71 public: 72 protected:
72 WriterLockable(boost::shared_mutex& lock) : lock_(lock)
73 {
74 }
75
76 virtual void Lock() 73 virtual void Lock()
77 { 74 {
78 lock_.lock(); 75 lock_.lock();
79 } 76 }
80 77
81 virtual void Unlock() 78 virtual void Unlock()
82 { 79 {
83 lock_.unlock(); 80 lock_.unlock();
84 } 81 }
82
83 public:
84 WriterLockable(boost::shared_mutex& lock) : lock_(lock)
85 {
86 }
87
85 }; 88 };
86 } 89 }
87 90
88 struct ReaderWriterLock::PImpl 91 struct ReaderWriterLock::PImpl
89 { 92 {