From 58aafeec78e6e0827ccae617b504cacf581b0580 Mon Sep 17 00:00:00 2001 From: Ethan O'Brien <77750390+ethanaobrien@users.noreply.github.com> Date: Sat, 1 Jul 2023 22:15:22 -0500 Subject: [PATCH] Fix RWebAudioInit race condition --- emscripten/library_rwebaudio.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/emscripten/library_rwebaudio.js b/emscripten/library_rwebaudio.js index 85f257d74f..dfbca1e228 100644 --- a/emscripten/library_rwebaudio.js +++ b/emscripten/library_rwebaudio.js @@ -35,6 +35,8 @@ var LibraryRWebAudio = { RA.buffers[RA.numBuffers - 1] = buf[0]; i--; RA.bufIndex--; + } else if (!RA.startTime) { + RA.setStartTime(); } } }, @@ -74,7 +76,7 @@ var LibraryRWebAudio = { block: function() { do { RA.process(); - } while (RA.bufIndex === RA.numBuffers-2); + } while (RA.bufIndex === RA.numBuffers); } }, @@ -87,8 +89,6 @@ var LibraryRWebAudio = { RA.numBuffers = ((latency * RA.context.sampleRate) / (1000 * RA.BUFFER_SIZE))|0; if (RA.numBuffers < 2) RA.numBuffers = 2; - - RA.numBuffers++; for (var i = 0; i < RA.numBuffers; i++) { RA.buffers[i] = RA.context.createBuffer(2, RA.BUFFER_SIZE, RA.context.sampleRate); @@ -114,7 +114,7 @@ var LibraryRWebAudio = { var count = 0; while (samples) { - if (RA.bufIndex === RA.numBuffers-2) { + if (RA.bufIndex === RA.numBuffers) { if (RA.nonblock) break; else RA.block(); }