Mercurial > hg > orthanc
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 { |