Skip to content

Commit

Permalink
Fixes garbled audio
Browse files Browse the repository at this point in the history
Caused by race condition when reading and writing RingBuffer simultaneously.
  • Loading branch information
rileytestut committed Nov 26, 2020
1 parent 7f8869a commit 3ad5f97
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions DeltaCore/Emulator Core/Audio/RingBuffer.swift
Expand Up @@ -157,12 +157,12 @@ private extension RingBuffer
func incrementAvailableBytes(by size: Int)
{
self.tailOffset = (self.tailOffset + size) % self.bufferLength
self.usedBytesCount -= min(Int32(size), self.usedBytesCount) // Prevent going below 0
OSAtomicAdd32(-Int32(size), &self.usedBytesCount)
}

func decrementAvailableBytes(by size: Int)
{
self.headOffset = (self.headOffset + size) % self.bufferLength
self.usedBytesCount += Int32(size)
OSAtomicAdd32(Int32(size), &self.usedBytesCount)
}
}

0 comments on commit 3ad5f97

Please sign in to comment.