[NUI] Rebase develnui (DevelNUI only patches --> master) (#3910)
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Devel.Tests.Ubuntu / nunit.framework / Compatibility / ReaderWriterLockSlim.cs
1 #define PORTABLE
2 #define TIZEN
3 #define NUNIT_FRAMEWORK
4 #define NUNITLITE
5 #define NET_4_5
6 #define PARALLEL
7 using System;
8 using System.Linq;
9 using System.Collections.Generic;
10 using System.Text;
11 using System.Threading;
12
13 namespace NUnit.Compatibility
14 {
15 #if NETCF
16     /// <summary>
17     /// 
18     /// </summary>
19     public class ReaderWriterLockSlim
20     {
21         private object _lockObject = new object();
22
23         /// <summary>
24         /// 
25         /// </summary>
26         public void EnterReadLock()
27         {
28             Monitor.Enter (_lockObject);
29         }
30
31         /// <summary>
32         /// 
33         /// </summary>
34         public void EnterWriteLock()
35         {
36             Monitor.Enter(_lockObject);
37         }
38
39         /// <summary>
40         /// 
41         /// </summary>
42         public void ExitReadLock()
43         {
44             Monitor.Exit(_lockObject);
45         }
46
47         /// <summary>
48         /// 
49         /// </summary>
50         public void ExitWriteLock()
51         {
52             Monitor.Exit(_lockObject);
53         }
54     }
55 #endif
56
57 #if NET_2_0
58     /// <summary>
59     /// 
60     /// </summary>
61     public static class ReaderWriterLockExtensions
62     {
63         /// <summary>
64         /// 
65         /// </summary>
66         /// <param name="rwLock"></param>
67         public static void EnterReadLock(this ReaderWriterLock rwLock)
68         {
69             rwLock.AcquireReaderLock(Timeout.Infinite);
70         }
71
72         /// <summary>
73         /// 
74         /// </summary>
75         /// <param name="rwLock"></param>
76         public static void EnterWriteLock(this ReaderWriterLock rwLock)
77         {
78             rwLock.AcquireWriterLock(Timeout.Infinite);
79         }
80
81         /// <summary>
82         /// 
83         /// </summary>
84         /// <param name="rwLock"></param>
85         public static void ExitReadLock(this ReaderWriterLock rwLock)
86         {
87             rwLock.ReleaseReaderLock();
88         }
89  
90         /// <summary>
91         /// 
92         /// </summary>
93         /// <param name="rwLock"></param>
94         public static void ExitWriteLock(this ReaderWriterLock rwLock)
95         {
96             rwLock.ReleaseWriterLock();
97         }
98    }
99 #endif
100 }