AudioTransportSource locking model

void AudioTransportSource::getNextAudioBlock (const AudioSourceChannelInfo& info)
    const ScopedLock sl (callbackLock);

Is this lock a good idea? Better to just try and see if we can get the lock here and return some blank audio if not?

Or better to just stream the audio through a FIFO from the reader thread inside AudioTransportSource?