perf: reduce diagnostics and queued dispatch allocations in 2.3.2
This commit is contained in:
8 files changed
+152
-36
No files matched your search
@@ -73,6 +73,35 @@ namespace ShrinkEventBus.Tests
|
||||
Assert.AreEqual(1, secondObserverCalls);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ObserveDiagnostics_MutationsApplyToNextDispatch()
|
||||
{
|
||||
var calls = new List<string>();
|
||||
IDisposable second = null;
|
||||
IDisposable added = null;
|
||||
using var first = EventBus.ObserveDiagnostics(_ =>
|
||||
{
|
||||
calls.Add("first");
|
||||
second.Dispose();
|
||||
if (added == null)
|
||||
added = EventBus.ObserveDiagnostics(__ => calls.Add("added"));
|
||||
});
|
||||
second = EventBus.ObserveDiagnostics(_ => calls.Add("second"));
|
||||
try
|
||||
{
|
||||
EventBus.NotifyDetailedPosted(default);
|
||||
CollectionAssert.AreEqual(new[] { "first", "second" }, calls);
|
||||
calls.Clear();
|
||||
EventBus.NotifyDetailedPosted(default);
|
||||
CollectionAssert.AreEqual(new[] { "first", "added" }, calls);
|
||||
}
|
||||
finally
|
||||
{
|
||||
second.Dispose();
|
||||
added?.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void PostDeferred_DoesNotDispatchBeforePump()
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user