Fix memory leak in AsyncAutoResetEvent.

This commit is contained in:
Christian
2019-03-05 07:47:31 +01:00
parent 3b02a5f6aa
commit 26d6d817cd
2 changed files with 48 additions and 1 deletions
@@ -17,6 +17,31 @@ namespace MQTTnet.Tests
_aare = new AsyncAutoResetEvent();
}
[TestMethod]
public async Task Cleanup_Waiters()
{
var @lock = new AsyncAutoResetEvent();
var waitOnePassed = false;
Task.Run(async () =>
{
await @lock.WaitOneAsync(TimeSpan.FromSeconds(2));
waitOnePassed = true;
});
await Task.Delay(500);
Assert.AreEqual(1, @lock.WaitersCount);
@lock.Set();
await Task.Delay(1000);
Assert.IsTrue(waitOnePassed);
Assert.AreEqual(0, @lock.WaitersCount);
}
[TestMethod]
public async Task SingleThreadedPulse()
{