Skip to content

Commit

Permalink
Reworked source objects dramatically.
Browse files Browse the repository at this point in the history
- No longer uses spinlocks.
- Mixer thread atomically flags then individually as they are mixing, so
  operations that need to change unsafe state can synchronize as appropriate.
- Now uses SourceBlocks (basically a copy/paste of BufferBlocks) to allocate
  sources, so you no longer have an artificial limit on sources.
- Now adds sources to the mixer playlist through SourcePlayTodo objects,
  in a linked list, added atomically. This lets us do alSourcePlayv() without
  a mixer lock and also work with any number of sources, as opposed to the
  atomic bitfield magic we used before.

Still some more work to do (buffer queues...), but this is a step in the
right direction!
  • Loading branch information
icculus committed Jun 28, 2019
1 parent cee6b80 commit bf809a2
Showing 1 changed file with 386 additions and 180 deletions.

0 comments on commit bf809a2

Please sign in to comment.