From 1cdcdab1488158323c3eb4d18e092099e594afd0 Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Wed, 13 Dec 2023 13:58:55 -0800 Subject: [PATCH] avoid race condition on StreamingSound.Dispose --- src/Audio/StreamingVoice.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Audio/StreamingVoice.cs b/src/Audio/StreamingVoice.cs index 528e7ec..22c886c 100644 --- a/src/Audio/StreamingVoice.cs +++ b/src/Audio/StreamingVoice.cs @@ -150,13 +150,16 @@ namespace MoonWorks.Audio { if (!IsDisposed) { - Stop(); - - for (int i = 0; i < BUFFER_COUNT; i += 1) + lock (StateLock) { - if (buffers[i] != IntPtr.Zero) + Stop(); + + for (int i = 0; i < BUFFER_COUNT; i += 1) { - NativeMemory.Free((void*) buffers[i]); + if (buffers[i] != IntPtr.Zero) + { + NativeMemory.Free((void*) buffers[i]); + } } } }