File tree Expand file tree Collapse file tree 1 file changed +36
-12
lines changed
src/Couchbase.Lite.Shared/Util Expand file tree Collapse file tree 1 file changed +36
-12
lines changed Original file line number Diff line number Diff line change @@ -31,43 +31,67 @@ internal sealed class ThreadSafeHashSet<T> : ICollection<T>
31
31
public int Count
32
32
{
33
33
get {
34
- _lock . EnterReadLock ( ) ;
35
- return _internal . Count ;
34
+ try {
35
+ _lock . EnterReadLock ( ) ;
36
+ return _internal . Count ;
37
+ } finally {
38
+ _lock . ExitReadLock ( ) ;
39
+ }
36
40
}
37
41
}
38
42
39
43
public bool IsReadOnly => false ;
40
44
41
45
public void Add ( T item )
42
46
{
43
- _lock . EnterWriteLock ( ) ;
44
- _internal . Add ( item ) ;
47
+ try {
48
+ _lock . EnterWriteLock ( ) ;
49
+ _internal . Add ( item ) ;
50
+ } finally {
51
+ _lock . ExitWriteLock ( ) ;
52
+ }
45
53
}
46
54
47
55
public void Clear ( )
48
56
{
49
- _lock . EnterWriteLock ( ) ;
50
- _internal . Clear ( ) ;
57
+ try {
58
+ _lock . EnterWriteLock ( ) ;
59
+ _internal . Clear ( ) ;
60
+ } finally {
61
+ _lock . ExitWriteLock ( ) ;
62
+ }
51
63
}
52
64
53
65
public bool Contains ( T item )
54
66
{
55
- _lock . EnterReadLock ( ) ;
56
- return _internal . Contains ( item ) ;
67
+ try {
68
+ _lock . EnterReadLock ( ) ;
69
+ return _internal . Contains ( item ) ;
70
+ } finally {
71
+ _lock . ExitReadLock ( ) ;
72
+ }
57
73
}
58
74
59
75
public void CopyTo ( T [ ] array , int arrayIndex )
60
76
{
61
- _lock . EnterReadLock ( ) ;
62
- _internal . CopyTo ( array , arrayIndex ) ;
77
+ try {
78
+ _lock . EnterReadLock ( ) ;
79
+ _internal . CopyTo ( array , arrayIndex ) ;
80
+ } finally {
81
+ _lock . ExitReadLock ( ) ;
82
+ }
63
83
}
64
84
65
85
public IEnumerator < T > GetEnumerator ( ) => new SnapshotEnumerator ( this ) ;
66
86
67
87
public bool Remove ( T item )
68
88
{
69
- _lock . EnterWriteLock ( ) ;
70
- return _internal . Remove ( item ) ;
89
+ try {
90
+ _lock . EnterWriteLock ( ) ;
91
+ return _internal . Remove ( item ) ;
92
+ } finally {
93
+ _lock . ExitWriteLock ( ) ;
94
+ }
71
95
}
72
96
73
97
IEnumerator IEnumerable . GetEnumerator ( ) => GetEnumerator ( ) ;
You can’t perform that action at this time.
0 commit comments