Skip to content

Commit c26dff6

Browse files
author
Oren (electricessence)
committed
Cleanup/reformat
1 parent 0f0f83c commit c26dff6

1 file changed

Lines changed: 6 additions & 11 deletions

File tree

source/Array/InterlockedArrayObjectPool.cs

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,17 @@ protected struct Element
3434
T _value;
3535
internal bool Save(ref T value)
3636
{
37-
if (_value != null) return false;
38-
value = Interlocked.Exchange(ref _value, value);
39-
return value == null;
37+
return _value != null
38+
&& null == Interlocked.CompareExchange(ref _value, value, null);
4039
}
4140

4241
internal T TryRetrieve()
4342
{
4443
var item = _value;
45-
if (item != null)
46-
{
47-
if (item == Interlocked.CompareExchange(ref _value, null, item))
48-
{
49-
return item;
50-
}
51-
}
52-
return null;
44+
return (item != null
45+
&& item == Interlocked.CompareExchange(ref _value, null, item))
46+
? item
47+
: null;
5348
}
5449
}
5550

0 commit comments

Comments
 (0)