The perform routine reads a range of samples and advances the read pointer, after which these samples can be *overwritten* by the worker thread. It's just a simple ringbuffer.
I did and still do notice it! Opening a file (that is not cached by the OS) can take a few milliseconds. If your delay setting is low and CPU load is high, you can easily get a dropout.