There are several data races in this class, mainly with the
getNextReadPosition() member function.
There are also some
sendChangeMessage calls from inside
I migrated the JUCE AudioFilePlayerDemo project into a plugin and Xcode flags several data races in the code.
You can test it out here:
the AudioFilePlayerDemo project that comes with JUCE uses the AudioTransportSource to handle all of the playback duties of audio files.