private byte[] ReadData(long pos, int size)
{
var cacheKey = pos.ToString();
var cached = cache.Get(cacheKey);
if (cached != null)
return (byte[]) cached;
byte[] buf;
lock (persistentSource.SyncLock)
{
cached = cache.Get(cacheKey);
if (cached != null)
return (byte[])cached;
buf = ReadDataNoCaching(pos, size);
}
cache[cacheKey] = buf;
return buf;
}