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 }