InputStreams should be disposed when destroyed

This commit is contained in:
RogueException
2017-04-01 13:21:08 -03:00
parent d243587a97
commit d991834c50

View File

@@ -183,15 +183,18 @@ namespace Discord.Audio
} }
internal async Task RemoveInputStreamAsync(ulong userId) internal async Task RemoveInputStreamAsync(ulong userId)
{ {
if (_streams.TryRemove(userId, out var ignored)) if (_streams.TryRemove(userId, out var pair))
{
await _streamDestroyedEvent.InvokeAsync(userId).ConfigureAwait(false); await _streamDestroyedEvent.InvokeAsync(userId).ConfigureAwait(false);
pair.Reader.Dispose();
}
} }
internal async Task ClearInputStreamsAsync() internal async Task ClearInputStreamsAsync()
{ {
foreach (var pair in _streams) foreach (var pair in _streams)
{ {
pair.Value.Reader.Dispose();
await _streamDestroyedEvent.InvokeAsync(pair.Key).ConfigureAwait(false); await _streamDestroyedEvent.InvokeAsync(pair.Key).ConfigureAwait(false);
pair.Value.Reader.Dispose();
} }
_ssrcMap.Clear(); _ssrcMap.Clear();
_streams.Clear(); _streams.Clear();