diff 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
line wrap: on
line diff
--- a/UnitTestsSources/MultiThreading.cpp	Wed Apr 16 12:12:55 2014 +0200
+++ b/UnitTestsSources/MultiThreading.cpp	Tue Apr 22 13:36:51 2014 +0200
@@ -3,6 +3,9 @@
 #include "../Core/OrthancException.h"
 #include "../Core/Toolbox.h"
 #include "../Core/MultiThreading/ArrayFilledByThreads.h"
+#include "../Core/MultiThreading/Locker.h"
+#include "../Core/MultiThreading/Mutex.h"
+#include "../Core/MultiThreading/ReaderWriterLock.h"
 #include "../Core/MultiThreading/ThreadedCommandProcessor.h"
 
 using namespace Orthanc;
@@ -185,3 +188,25 @@
       ASSERT_TRUE(s.find(i) != s.end());
   }
 }
+
+
+TEST(MultiThreading, Mutex)
+{
+  Mutex mutex;
+  Locker locker(mutex);
+}
+
+
+TEST(MultiThreading, ReaderWriterLock)
+{
+  ReaderWriterLock lock;
+
+  {
+    Locker locker1(lock.ForReader());
+    Locker locker2(lock.ForReader());
+  }
+
+  {
+    Locker locker3(lock.ForWriter());
+  }
+}