void StartNewValueFile()
{
lock (_startNewValueFileLocker)
{
QuickFinishCompaction();
var fileInfo = new FilePureValues(AllocNewFileGeneration());
if (_cacheValueWriter != null)
{
lock (_cacheValueWriter)
{
_cacheValueFile.HardFlush();
SetNewValueFile();
}
}
else
{
SetNewValueFile();
}
fileInfo.WriteHeader(_cacheValueWriter);
_fileInfos.TryAdd(_cacheValueFileId, fileInfo);
_compactionCts = new CancellationTokenSource();
_compactionTask = Task.Factory.StartNew(CompactionCore, _compactionCts.Token,
TaskCreationOptions.LongRunning, TaskScheduler.Default);
}
}