Revision 174bbb6e trunk/Pithos.Core/Agents/AsyncManualResetEvent.cs
b/trunk/Pithos.Core/Agents/AsyncManualResetEvent.cs | ||
---|---|---|
87 | 87 |
while (true) |
88 | 88 |
{ |
89 | 89 |
var tcs = _tcs; |
90 |
if (!tcs.Task.IsCompleted || |
|
91 |
Interlocked.CompareExchange(ref _tcs, new TaskCompletionSource<bool>(), tcs) == tcs) |
|
90 |
if (!tcs.Task.IsCompleted) |
|
91 |
return; |
|
92 |
#pragma warning disable 420 |
|
93 |
if (Interlocked.CompareExchange(ref _tcs, new TaskCompletionSource<bool>(), tcs) == tcs) |
|
94 |
#pragma warning restore 420 |
|
92 | 95 |
return; |
93 | 96 |
} |
94 | 97 |
} |
Also available in: Unified diff