Browse Source

Fix audio dispose

pull/1667/head
Paulo 4 years ago
parent
commit
41715457c0
4 changed files with 23 additions and 4 deletions
  1. +3
    -0
      src/Discord.Net.WebSocket/Audio/Streams/BufferedWriteStream.cs
  2. +5
    -3
      src/Discord.Net.WebSocket/Audio/Streams/OpusEncodeStream.cs
  3. +8
    -1
      src/Discord.Net.WebSocket/Audio/Streams/RTPWriteStream.cs
  4. +7
    -0
      src/Discord.Net.WebSocket/Audio/Streams/SodiumEncryptStream.cs

+ 3
- 0
src/Discord.Net.WebSocket/Audio/Streams/BufferedWriteStream.cs View File

@@ -61,14 +61,17 @@ namespace Discord.Audio.Streams


_task = Run(); _task = Run();
} }

protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing) if (disposing)
{ {
_disposeTokenSource?.Cancel(); _disposeTokenSource?.Cancel();
_disposeTokenSource?.Dispose(); _disposeTokenSource?.Dispose();
_cancelTokenSource?.Cancel();
_cancelTokenSource?.Dispose(); _cancelTokenSource?.Dispose();
_queueLock?.Dispose(); _queueLock?.Dispose();
_next.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }


+ 5
- 3
src/Discord.Net.WebSocket/Audio/Streams/OpusEncodeStream.cs View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;


@@ -89,10 +89,12 @@ namespace Discord.Audio.Streams


protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
base.Dispose(disposing);

if (disposing) if (disposing)
{
_encoder.Dispose(); _encoder.Dispose();
_next.Dispose();
}
base.Dispose(disposing);
} }
} }
} }

+ 8
- 1
src/Discord.Net.WebSocket/Audio/Streams/RTPWriteStream.cs View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;


@@ -69,5 +69,12 @@ namespace Discord.Audio.Streams
{ {
await _next.ClearAsync(cancelToken).ConfigureAwait(false); await _next.ClearAsync(cancelToken).ConfigureAwait(false);
} }

protected override void Dispose(bool disposing)
{
if (disposing)
_next.Dispose();
base.Dispose(disposing);
}
} }
} }

+ 7
- 0
src/Discord.Net.WebSocket/Audio/Streams/SodiumEncryptStream.cs View File

@@ -60,5 +60,12 @@ namespace Discord.Audio.Streams
{ {
await _next.ClearAsync(cancelToken).ConfigureAwait(false); await _next.ClearAsync(cancelToken).ConfigureAwait(false);
} }

protected override void Dispose(bool disposing)
{
if (disposing)
_next.Dispose();
base.Dispose(disposing);
}
} }
} }

Loading…
Cancel
Save