public override async ValueTask <bool> WaitToReadAsync(CancellationToken token = default) { await reader.WaitToReadAsync(token).ConfigureAwait(false); //lock and deserialize using (await readLock.Acquire(token).ConfigureAwait(false)) { var lookup = Partition; buffer.Add(await reader.DeserializeAsync(lookup, token).ConfigureAwait(false)); cursor.Advance(lookup.Position); } return(true); }