Skip to content

Commit 3ad5f97

Browse files
committed
Fixes garbled audio
Caused by race condition when reading and writing RingBuffer simultaneously.
1 parent 7f8869a commit 3ad5f97

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

‎DeltaCore/Emulator Core/Audio/RingBuffer.swift‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,12 +157,12 @@ private extension RingBuffer
157157
func incrementAvailableBytes(by size: Int)
158158
{
159159
self.tailOffset = (self.tailOffset + size) % self.bufferLength
160-
self.usedBytesCount -= min(Int32(size), self.usedBytesCount) // Prevent going below 0
160+
OSAtomicAdd32(-Int32(size), &self.usedBytesCount)
161161
}
162162

163163
func decrementAvailableBytes(by size: Int)
164164
{
165165
self.headOffset = (self.headOffset + size) % self.bufferLength
166-
self.usedBytesCount += Int32(size)
166+
OSAtomicAdd32(Int32(size), &self.usedBytesCount)
167167
}
168168
}

0 commit comments

Comments
 (0)