Пример #1
0
        public override async ValueTask <T> ReadAsync(CancellationToken token)
        {
            await reader.WaitToReadAsync(token).ConfigureAwait(false);

            //lock and deserialize
            T result;

            using (await readLock.Acquire(token).ConfigureAwait(false))
            {
                var lookup = Partition;
                //reset file cache
                await lookup.FlushAsync(token).ConfigureAwait(false);

                result = await reader.DeserializeAsync(lookup, token).ConfigureAwait(false);

                cursor.Advance(lookup.Position);
            }
            return(result);
        }