Mercurial > hg > orthanc
comparison UnitTestsSources/MultiThreading.cpp @ 760:b2a62f22fbe8
lock abstraction
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 22 Apr 2014 13:36:51 +0200 |
parents | 0da078f3affc |
children | fc97f762834c 3f946e5c3802 |
comparison
equal
deleted
inserted
replaced
757:40d09221077a | 760:b2a62f22fbe8 |
---|---|
1 #include "gtest/gtest.h" | 1 #include "gtest/gtest.h" |
2 | 2 |
3 #include "../Core/OrthancException.h" | 3 #include "../Core/OrthancException.h" |
4 #include "../Core/Toolbox.h" | 4 #include "../Core/Toolbox.h" |
5 #include "../Core/MultiThreading/ArrayFilledByThreads.h" | 5 #include "../Core/MultiThreading/ArrayFilledByThreads.h" |
6 #include "../Core/MultiThreading/Locker.h" | |
7 #include "../Core/MultiThreading/Mutex.h" | |
8 #include "../Core/MultiThreading/ReaderWriterLock.h" | |
6 #include "../Core/MultiThreading/ThreadedCommandProcessor.h" | 9 #include "../Core/MultiThreading/ThreadedCommandProcessor.h" |
7 | 10 |
8 using namespace Orthanc; | 11 using namespace Orthanc; |
9 | 12 |
10 namespace | 13 namespace |
183 ASSERT_TRUE(s.find(i) == s.end()); | 186 ASSERT_TRUE(s.find(i) == s.end()); |
184 else | 187 else |
185 ASSERT_TRUE(s.find(i) != s.end()); | 188 ASSERT_TRUE(s.find(i) != s.end()); |
186 } | 189 } |
187 } | 190 } |
191 | |
192 | |
193 TEST(MultiThreading, Mutex) | |
194 { | |
195 Mutex mutex; | |
196 Locker locker(mutex); | |
197 } | |
198 | |
199 | |
200 TEST(MultiThreading, ReaderWriterLock) | |
201 { | |
202 ReaderWriterLock lock; | |
203 | |
204 { | |
205 Locker locker1(lock.ForReader()); | |
206 Locker locker2(lock.ForReader()); | |
207 } | |
208 | |
209 { | |
210 Locker locker3(lock.ForWriter()); | |
211 } | |
212 } |